建立型模式 建造者模式

2021-08-28 13:06:38 字數 2583 閱讀 5081

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 將乙個複雜的物件的構建過...