建造者模式 - 设计模式 - PHP版

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了建造者模式 - 设计模式 - PHP版相关的知识,希望对你有一定的参考价值。

 1 <?php
 2 /*
 3  * 建造者模式
 4  * 
 5  * 参考:http://blog.csdn.net/jhq0113/article/details/45268743
 6  * 
 7  */
 8 /* * 具体产品角色  鸟类 
 9  * Class Bird 
10  */
11 class Bird {
12     public $_head;
13     public $_wing;
14     public $_foot;
15     function show() {
16         echo "头的颜色:{$this->_head}<br/>";
17         echo "翅膀的颜色:{$this->_wing}<br/>";
18         echo "脚的颜色:{$this->_foot}<br/>";
19     }
20 }
21 /* * 抽象鸟的建造者(生成器) 
22  * Class BirdBuilder 
23  */
24 abstract class BirdBuilder {
25     protected $_bird;
26     function __construct() {
27         $this->_bird = new Bird();
28     }
29     abstract function BuildHead();
30     abstract function BuildWing();
31     abstract function BuildFoot();
32     abstract function GetBird();
33 }
34 /* * 具体鸟的建造者(生成器)   蓝鸟 
35  * Class BlueBird 
36  */
37 class BlueBird extends BirdBuilder {
38     function BuildHead() {
39         // TODO: Implement BuilderHead() method.  
40         $this->_bird->_head = "Blue";
41     }
42     function BuildWing() {
43         // TODO: Implement BuilderWing() method.  
44         $this->_bird->_wing = "Blue";
45     }
46     function BuildFoot() {
47         // TODO: Implement BuilderFoot() method.  
48         $this->_bird->_foot = "Blue";
49     }
50     function GetBird() {
51         // TODO: Implement GetBird() method.  
52         return $this->_bird;
53     }
54 }
55 /* * 玫瑰鸟 
56  * Class RoseBird 
57  */
58 class RoseBird extends BirdBuilder {
59     function BuildHead() {
60         // TODO: Implement BuildHead() method.  
61         $this->_bird->_head = "Red";
62     }
63     function BuildWing() {
64         // TODO: Implement BuildWing() method.  
65         $this->_bird->_wing = "Black";
66     }
67     function BuildFoot() {
68         // TODO: Implement BuildFoot() method.  
69         $this->_bird->_foot = "Green";
70     }
71     function GetBird() {
72         // TODO: Implement GetBird() method.  
73         return $this->_bird;
74     }
75 }
76 /* * 指挥者 
77  * Class Director 
78  */
79 class Director {
80     /**
81      * @param $_builder      建造者 
82      * @return mixed         产品类:鸟 
83      */
84     function Construct($_builder) {
85         $_builder->BuildHead();
86         $_builder->BuildWing();
87         $_builder->BuildFoot();
88         return $_builder->GetBird();
89     }
90 }
91 $director = new Director();
92 echo "蓝鸟的组成:<hr/>";
93 $blue_bird = $director->Construct(new BlueBird());
94 $blue_bird->Show();
95 echo "<br/>Rose鸟的组成:<hr/>";
96 $rose_bird = $director->Construct(new RoseBird());
97 $rose_bird->Show();

 

以上是关于建造者模式 - 设计模式 - PHP版的主要内容,如果未能解决你的问题,请参考以下文章

建造者模式(Java与Kotlin版)

PHP 建造者模式

php设计模式之建造者模式

设计模式·建造者模式

PHP建造者模式

php设计模式三-----建造者模式