设计模式 _第五招式_建造者模式
生活随笔
收集整理的這篇文章主要介紹了
设计模式 _第五招式_建造者模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、定義
建造者模式(Builder Pattern)叫做生成器模式,將一個復雜對象的構建與它表示分離,使得同樣的構造過程可以創建不同的表示,可以按照部件屬性有序的創建對象。
二、代碼演示
建造者模式通用類圖
- Product產品類
通常是實現了模版方法模式,也就是有模版方法和基本方法。
public class Product {public void doSomething(){//獨立業務邏輯} }- Builder抽象建造者
規范產品的組建,一般是由子類實現。
public abstract class Builder {//設置產品的不同部分,已獲得不同的產品public abstract void setPart();//構造產品public abstract Product buildProduct(); }- ConcreteBuilder具體建造者
實現抽象類定義的所有方法,并且返回一組構建好的對象。
public class ConcreteProduct extends Builder {Product product = new Product();//設置產品零件public void setPart(){//產品類內的邏輯處理}//組建一個產品public Product buildProduct(){return product ;} }- Director導演類
負責安排已有的模塊的順序,然后告訴Builder開始構造
public class Director {private Builder builder = new ConcreteProduct();//構建不同的產品public Product getAProduct(){builder.setPart();return builder.buildProduct();} }三、優點
- 封裝性
使用建造者模式可以使客戶端不必知道產品內部組成的細節。 - 建造者獨立,容易擴展
每個建造者相互獨立,很好擴展。 - 便于控制細節風險
由于具體的建造者是獨立的,因此可以對建造者過程逐步細化,而不會對其它模塊產生影響。
四、缺點
五、應用場景
- 相同的方法,不同的執行順序,產生不同的事件結果。
- 多個部件或零件,都可以封裝到一個對象中,但是產生的運行結果又不相同,則可以采用該模式。
- 產品類非常復雜,或者產品類中調用的順序不同,產生的結果不同,這非常時候建造者模式。
六、注意事項
- 建造者模式關注的是零件類型和裝配工藝(順序),這是它與工廠方法模式最大的不同地方,雖然都是創建類,但是注重點不同。
- 建造者模式常常需要和模版方法模式結合使用。
總結
以上是生活随笔為你收集整理的设计模式 _第五招式_建造者模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《剑指Offer》51. 二叉搜索树的第
- 下一篇: asp.net ajax控件工具集 Au