設計模式04 建造者模式

2021-09-29 08:29:17 字數 1698 閱讀 2759

建造者模式是用於生產複雜物件,將複雜物件的建立與表示分離。

room:具體的產品

ibuilder:抽象建造者

workbuilder:具體的建造者

company:指揮者,指揮建造者建立物件

使用者找裝修公司裝修房子,裝修公司(指揮者)制定裝修方案(抽象建造者)並找了裝修工人(具體建造者),裝修工人對房子(具體的產品)進行裝修。

簡化版的建造者模式要比之前的建造者模式要簡單很多,去除了指揮者及抽象建造者。roomparams是workbuilder的內部類,roomparams的屬性與room一致,在workbuilder中的set方法都會操作roomparams物件,並在build方法內建立room。

public

class

room

public

void

setwindow

(string window)

public string getfloor()

public

void

setfloor

(string floor)

public

void

(workbuilder.roomparams pamams)

}

public

class

workbuilder

public string getwindow()

public workbuilder setwindow

(string window)

public string getfloor()

public workbuilder setfloor

(string floor)

public room build()

public

static

class

roomparams

}

04 設計模式 建造者模式

建造者模式就好像蓋一棟房子,需要有設計師,圖紙,施工隊以及成品,在這其中 圖例如下 成品類 data tostring public class product 上面的成品類就是最終的產品所需要具備的屬性,我把它理解為實體類 圖紙類 public abstract class builderbuil...

設計模式 建造者模式

在gof的23種設計模式中對builder pattern的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...

設計模式建造者模式

今天看了乙個設計模式。總結下,以免忘了。如何引入建造者模式的呢?作者舉了個例子。建造小人。當然需要 頭,左手,右手,左腳,右腳,軀幹。建造的過程使用 使用類裡面的方法就行了。但是如果需要乙個胖的小人,乙個瘦的小人呢?就需要重新構造乙個胖人類,乙個瘦人類。當然 使用者還需要自己處理構造的過程。這樣 就...