建造者模式通常包括下面幾個角色:
結構圖:
使用場景:
需要生成的物件具有複雜的內部結構。
需要生成的物件內部屬性本身相互依賴。
**案例
1、電腦角色:包含多個組成部件的複雜物件。
/**2、抽象建造者:包含建立電腦各個子部件的抽象方法。* 電腦角色:包含多個組成部件的複雜物件。 */
public
class
computer
public
void
setmonitor(string monitor)
public
void
setkeyboard(string keyboard)
public
void
show()
}
/**3、具體建造者:實現了抽象建造者介面。* 抽象建造者:包含建立電腦各個子部件的抽象方法。 */
abstract
class
builder
}
/**4、指揮者:呼叫建造者中的方法完成複雜物件的建立。* 具體建造者:實現了抽象建造者介面。 */
public
class concretebuilder extends
builder
@override
public
void
buildmonitor()
@override
public
void
buildkeyboard()
}
/**5、客戶類。* 指揮者:呼叫建造者中的方法完成複雜物件的建立。 */
public
class
director
//電腦構建與組裝方法
public
computer construct()
}
/**列印結果* 客戶類 */
public
class
client
}
主要優點如下:
封裝性好,構建和表示分離。
擴充套件性好,各個具體的建造者相互獨立,有利於系統的解耦。
客戶端不必知道產品內部組成的細節,建造者可以對建立過程逐步細化,而不對其它模組產生任何影響,便於控制細節風險。
其缺點如下:
產品的組成部分必須相同,這限制了其使用範圍。
如果產品的內部變化複雜,如果產品內部發生變化,則建造者也要同步修改,後期維護成本較大。
建造者(builder)模式和工廠模式的關注點不同:建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程,但兩者可以結合使用。
設計模式4 建造者模式
首先說說建造者模式要解決乙個什麼樣的問題 流程控制,即保證方法先後順序正確且沒有遺漏.用於靈活指導操作細節.建造者模式包括 乙個導演類 用於規定操作順序 乙個建造者介面 用於規定建造者的操作 具體的建造者 建造者的具體實現類 例如 public class buildertest class fil...
4 設計模式 建造者模式
前段時間一直忙於考證,沒有整理,開啟部落格感覺又好像過了很久的樣子,哎,鬆懈時間過得真快,今天整理一波建造者模式。從字面意思建造者模式更傾向於建造。例如計算機包含滑鼠,鍵盤,耳機,音響,印表機等等硬體裝置。這是乙個相對比較複雜的物件。而我們要建立的是計算機這個整體,如果採用工廠模式就沒那麼專業。因為...
設計模式 4 建造者模式
說明 將很多事情,一件一件的按順序組裝形成,stringbuilding就是建造者模式。場景 當乙個流程由很多功能組成,可以直接使用,然後每個實現就好。實現 public class customer 組裝電腦需要的步驟,這裡只組裝了cpu,硬碟 public abstract class ling...