設計模式 4 建造者模式

2022-09-14 21:57:21 字數 1695 閱讀 7926

建造者模式通常包括下面幾個角色:

結構圖:

使用場景:

需要生成的物件具有複雜的內部結構。

需要生成的物件內部屬性本身相互依賴。

**案例

1、電腦角色:包含多個組成部件的複雜物件。

/**

* 電腦角色:包含多個組成部件的複雜物件。 */

public

class

computer

public

void

setmonitor(string monitor)

public

void

setkeyboard(string keyboard)

public

void

show()

}

2、抽象建造者:包含建立電腦各個子部件的抽象方法。

/**

* 抽象建造者:包含建立電腦各個子部件的抽象方法。 */

abstract

class

builder

}

3、具體建造者:實現了抽象建造者介面。

/**

* 具體建造者:實現了抽象建造者介面。 */

public

class concretebuilder extends

builder

@override

public

void

buildmonitor()

@override

public

void

buildkeyboard()

}

4、指揮者:呼叫建造者中的方法完成複雜物件的建立。

/**

* 指揮者:呼叫建造者中的方法完成複雜物件的建立。 */

public

class

director

//電腦構建與組裝方法

public

computer construct()

}

5、客戶類。

/**

* 客戶類 */

public

class

client

}

列印結果

主要優點如下:

封裝性好,構建和表示分離。

擴充套件性好,各個具體的建造者相互獨立,有利於系統的解耦。

客戶端不必知道產品內部組成的細節,建造者可以對建立過程逐步細化,而不對其它模組產生任何影響,便於控制細節風險。

其缺點如下:

產品的組成部分必須相同,這限制了其使用範圍。

如果產品的內部變化複雜,如果產品內部發生變化,則建造者也要同步修改,後期維護成本較大。

建造者(builder)模式和工廠模式的關注點不同:建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程,但兩者可以結合使用。

設計模式4 建造者模式

首先說說建造者模式要解決乙個什麼樣的問題 流程控制,即保證方法先後順序正確且沒有遺漏.用於靈活指導操作細節.建造者模式包括 乙個導演類 用於規定操作順序 乙個建造者介面 用於規定建造者的操作 具體的建造者 建造者的具體實現類 例如 public class buildertest class fil...

4 設計模式 建造者模式

前段時間一直忙於考證,沒有整理,開啟部落格感覺又好像過了很久的樣子,哎,鬆懈時間過得真快,今天整理一波建造者模式。從字面意思建造者模式更傾向於建造。例如計算機包含滑鼠,鍵盤,耳機,音響,印表機等等硬體裝置。這是乙個相對比較複雜的物件。而我們要建立的是計算機這個整體,如果採用工廠模式就沒那麼專業。因為...

設計模式 4 建造者模式

說明 將很多事情,一件一件的按順序組裝形成,stringbuilding就是建造者模式。場景 當乙個流程由很多功能組成,可以直接使用,然後每個實現就好。實現 public class customer 組裝電腦需要的步驟,這裡只組裝了cpu,硬碟 public abstract class ling...