builder:抽象建造者,提供建造產品某部分的方法
concretebuilder:具體建造者,具體來建造產品中的某個部分
director:指揮者,實現建造者模式的介面,選擇具體建造者來建立具體的產品
product:產品
抽象建造者builder.php
<?php
/** * created by phpstorm.
* user: 何曉巨集
* date: 2018/9/28
* time: 15:34
*/namespace
builderpattern
;abstract
class
builder
abstract
function
addoil()
;abstract
function
addfood()
;abstract
function
addsalt()
;abstract
function
getfood()
;}
具體建造者
<?php
/** * created by phpstorm.
* user: 何曉巨集
* date: 2018/9/28
* time: 15:35
*/namespace
builderpattern
;class
builder1
extends
builder
function
addfood()
function
addsalt()
function
getfood()
}
<?php
/** * created by phpstorm.
* user: 何曉巨集
* date: 2018/9/28
* time: 15:36
*/namespace
builderpattern
;class
builder2
extends
builder
function
addfood()
function
addsalt()
function
getfood()
}
指揮者cook.php
<?php
/** * created by phpstorm.
* user: 何曉巨集
* date: 2018/9/28
* time: 15:35
*/namespace
builderpattern
;class
cook
}
產品 food.php
<?php
/** * created by phpstorm.
* user: 何曉巨集
* date: 2018/9/28
* time: 15:34
*/namespace
builderpattern
;class
food";
echo""
;echo
"\n";}
}
客戶端
$cook1
=new
\builderpattern\cook()
;echo
"炒菜步驟:"
;$food1
=$cook1
->
build
(new
\builderpattern\builder1()
);$food1
->
cookprocess()
;$cook2
=new
\builderpattern\cook()
;echo
"炒肉步驟:"
;$food2
=$cook2
->
build
(new
\builderpattern\builder2()
);$food2
->
cookprocess()
;
執行結果 建立型模式 建造者模式
建造者模式 builder pattern 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。與抽象工廠的區別 在建造者模式裡,有個指導者,由指導者來管理建造者,使用者和指導聯絡,指導者聯絡建造者最後得到產品牌。即建造模式可以強制實現一種分步驟進行的建造過程。建造者模式將複雜...
建立型模式 建造者模式
這段時間剛好要觀摩持久層框架mybatis,恰好看到mybatis 複雜的工廠物件 sqlsessionfactory 的生成類 sqlsessionfactorybuilder 不禁想起gof 23種設計模式中的建造者模式。對照現實中,你去買車時只需知道你要買車的型別,便可到店中購得心滿意足的產品...
建立型模式 建造者模式
在開發中經常有些複雜的物件,它們擁有一系列成員屬性,這些成員屬性中有些是引用型別的成員物件。而且在這些複雜物件中,通過不同的屬性生成 不同的物件 比如 汽車 這個物件,通過不同的發動機製造出來之後,都是汽車 但是他的效能,是不同的 建造者模式 builder pattern 將乙個複雜的物件的構建過...