PHP設計模式之建造者模式定義與用法簡單示例
2019-09-12 13:17hiyanxu PHP教程
這篇文章主要介紹了PHP設計模式之建造者模式定義與用法,簡單描述了建造者模式的概念、原理并結合實例形式分析了建造者模式的具體定義與使用方法,需要的朋友可以參考下
本文實例講述了PHP設計模式之建造者模式。分享給大家供大家參考,具體如下:
建造者模式:
將復雜對象的創建過程和表示進行分離(好吧,我也看不懂什么意思1)。
來點我人類能聽懂的話:
-
1、在客戶端看來需要的僅僅是實例化后的類對象(大多數情況下是需要類的屬性)。
-
2、傳統方式下當類有了之后,一般直接通過
new class()
的方式直接進行實例化,然后通過$obj->set1()
構建屬性1,$obj->set2()
構建屬性2,$obj->set3()
構建屬性3。。。
-
3、傳統方式有一個很大的弊端:當我們的類發生改變后,我們需要大量的修改,比如文件1中加上
$obj->set4()
,文件2中加上$obj->set4()
,增加很多的工作量。
-
4、建造者模式會給出構建對象的具體實現類,將對象的創建實例化過程封裝在建造者類中,并給出一個返回構建后對象的方法,將構建后的對象返回。
-
5、當類發生改變后,只需要改變建造者類中構建對象的
build()
方法,對客戶端來說,這并不可見,并且不用做修改就得到了修改后的對象。改動的只是需求對象修改后的邏輯處理。
代碼:
08 | public function setHead( $head ){ |
11 | public function getHead(){ |
14 | public function setBody( $body ){ |
17 | public function getBody(){ |
26 | public function buildHead(); |
27 | public function buildBody(); |
28 | public function getResult(); |
34 | class ConcreteBuilder implements Builder{ |
37 | public function __construct( $data ){ |
38 | $this ->person= new Person(); |
41 | public function buildHead(){ |
42 | $this ->person->setHead( $this ->data[ 'head' ]); |
44 | public function buildBody(){ |
45 | $this ->person->setBody( $this ->data[ 'body' ]); |
47 | public function getResult(){ |
56 | public function __construct(ConcreteBuilder $builder ){ |
57 | $builder ->buildHead(); |
58 | $builder ->buildBody(); |
69 | $builder = new ConcreteBuilder( $data ); |
70 | $director = new Director( $builder ); |
71 | $person = $builder ->getResult(); |
運行結果:
大頭兒子身體棒棒噠
希望本文所述對大家PHP程序設計有所幫助。