五、**實現
六、建造者模式和工廠模式的區別
建造者(builder)模式的定義:指將乙個複雜物件的構造與它的表示分離,使同樣的構建過程可以建立不同的表示,這樣的設計模式被稱為建造者模式。
它是將乙個複雜的物件分解為多個簡單的物件,然後一步一步構建而成。它將變與不變相分離,即產品的組成部分是不變的,但每一部分是可以靈活選擇的。
優點:
缺點:
相同的方法,不同的執行順序,產生不同的結果。
多個部件或零件,都可以裝配到乙個物件中,但是產生的結果又不相同。
產品類非常複雜,或者產品類中不同的呼叫順序產生不同的作用。
初始化乙個物件特別複雜,引數多,而且很多引數都具有預設值。
產品
public
class
product
public
void
setpartb
(string partb)
@override
public string tostring()
';}}
抽象建造者和具體建造者
public
abstract
class
builder
}
public
class
concretebuilder1
extends
builder
@override
public
void
buildpartb()
}
public
class
concretebuilder2
extends
builder
@override
public
void
buildpartb()
}
指揮者
public
class
director
public
director
(builder builder)
/** * 若還有其他方法需要使用建造者物件時,採用構造器的方式獲取物件,呼叫此方法
* @return
*/public product construct()
/** * 單一構造時,使用次方法將具體構造物件傳入即可
* @param builder
* @return
*/public product construct
(builder builder)
}
測試
public
class
testbuilder
}
建造者模式注重過程,即物件是如何建立的,建造的順序是怎樣的
工廠模式注重結果,即你給我的產品符合我的要求就行,不關心其它事情。
建造者模式唯一區別於工廠模式的是針對複雜物件的建立。也就是說,如果建立簡單物件,通常都是使用工廠模式進行建立,而如果建立複雜物件,就可以考慮使用建造者模式。
設計模式之建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟 設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設 計模式 和...
設計模式之建造者模式
建造者模式也叫生成器模式,是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承或過載的方式,動態的建立具有復合屬性的物件。應用場景 物件的建立 builder 模式是為物件的建立而設計的模式 建立的是乙個復合物件 被建立的物件為乙個具有復合屬性的復合物件 關...
設計模式之建造者模式
在做服務介面的時候,往往在業務處理之前需要做業務校驗,格式校驗等業務前處理。這些介面有個相同的特徵,就是必須經過這些處理步驟之後才能做核心的業務處理,拓展的服務介面也必須經過這些處理。基於這個特徵,我們就來分析一下設計模式中,建造者模式。我們先建乙個基礎的服務類 public abstract cl...