與抽象工廠的區別:在建造者模式裡,有個指導者(director),由指導者來管理建造者,使用者是與指導者聯絡的,指導者聯絡建造者最後得到產品。即建造者模式可以強制實行一種分步驟進行的建造過程。
1.產品類product:一般是乙個較為複雜的物件,也就是說建立物件的過程比較複雜,一般會有比較多的**量。
2.抽象建造者類builder: 將建造的具體過程交與它的子類來實現,這樣更容易擴充套件。
3.建造者類concretebuilder: 組建產品;返回組建好的產品。
4.指導類director: 負責呼叫適當的建造者來組建產品,指導類一般不與產品類發生依賴關係,與指導類直接互動的是建造者類。
1.建造者模式的封裝性很好。使用建造者模式可以有效的封裝變化,在使用建造者模式的場景中,一般產品類和建造者類是比較穩定的,因此,將主要的業務邏輯封裝在指導者類中對整體而言可以取得比較好的穩定性。
2.建造者模式很容易進行擴充套件。如果有新的需求,通過實現乙個新的建造者類就可以完成。
需要生成的物件具有複雜的內部結構;需要生成的物件內部屬性本身相互依賴。
class car
inte***ce builder
//911製造者
class builder911 implements builder
@override
public
void
buildengine()
@override
public
void
buildwheel()
@override
public car buildcar()
}//cayma製造者
class buildercayma implements builder
@override
public
void
buildengine()
@override
public
void
buildwheel()
@override
public car buildcar()
}//指導者
class director
public car build()
}public
class main
}
結果
製造911骨架
製造911引擎
製造911引擎
911汽車各部組裝完畢
製造cayma骨架
製造cayma引擎
製造cayma輪子
cayma汽車各部組裝完畢
建立型模式之建造者模式
今天,剛剛做的新需求已經測試了,比較閒。抽空學習設計模式,充實自己啦。建造者模式其實就是通過多個簡單的物件構建複雜的物件。它是一種建立物件的最佳方式,但是它獨立與其他物件。包含了建造者和導演。建造者建立和提供例項,導演 管理建造出來的例項的依賴關係。應用例項 去肯德基,漢堡 可樂 薯條 炸雞翅等是不...
建立型模式 建造者模式
建造者模式 builder pattern 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。與抽象工廠的區別 在建造者模式裡,有個指導者,由指導者來管理建造者,使用者和指導聯絡,指導者聯絡建造者最後得到產品牌。即建造模式可以強制實現一種分步驟進行的建造過程。建造者模式將複雜...
建立型模式 建造者模式
這段時間剛好要觀摩持久層框架mybatis,恰好看到mybatis 複雜的工廠物件 sqlsessionfactory 的生成類 sqlsessionfactorybuilder 不禁想起gof 23種設計模式中的建造者模式。對照現實中,你去買車時只需知道你要買車的型別,便可到店中購得心滿意足的產品...