建造者模式是用於生產複雜物件,將複雜物件的建立與表示分離。
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的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...
設計模式建造者模式
今天看了乙個設計模式。總結下,以免忘了。如何引入建造者模式的呢?作者舉了個例子。建造小人。當然需要 頭,左手,右手,左腳,右腳,軀幹。建造的過程使用 使用類裡面的方法就行了。但是如果需要乙個胖的小人,乙個瘦的小人呢?就需要重新構造乙個胖人類,乙個瘦人類。當然 使用者還需要自己處理構造的過程。這樣 就...