一天一个设计模式之建造者模式(Builder)
?建造者模式,屬于創建型模式,其目的在于將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
適用情況:
? 當創建復雜對象的算法應該獨立于該對象的組成部分以及它們的裝配方式時。
? 當構造過程必須允許被構造的對象有不同的表示時。
類結構圖如下所示
?
?參與者
? Builder
— 為創建一個Product對象的各個部件指定抽象接口。
? ConcreteBuilder
— 實現Builder的接口以構造和裝配該產品的各個部件。
— 定義并明確它所創建的表示。
— 提供一個檢索產品的接口
? Director
— 構造一個使用Builder接口的對象。
? Product
— 表示被構造的復雜對象。ConcreteBuilder創建該產品的內部表示并定義它的裝配過程。
— 包含定義組成部件的類,包括將這些部件裝配成最終產品的接口。
協作
? 客戶創建Director對象,并用它所想要的Builder對象進行配置。
? 一旦產品部件被生成,導向器就會通知生成器。
? 生成器處理導向器的請求,并將部件添加到該產品中。
? 客戶從生成器中檢索產品。
實現代碼:
生活中的例子:
在這里我們以造汽車為例子,汽車是由個很復雜的對象,有很多個子對象組成,如輪胎,引擎,車架等,所以為了造好一輛汽車,其子對象必須具備。
?
?
?
轉載于:https://blog.51cto.com/visionsky/385196
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的一天一个设计模式之建造者模式(Builder)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 过滤html标签的代码
- 下一篇: SQL Server 2005两本教程案