建造者模式的定義將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示(dp)。《大話設計模式》舉了乙個很好的例子——建造小人,一共需建造6個部分,頭部、身體、左右手、左右腳。與工廠模式不同,建造者模式是在導向者的控制下一步一步構造產品的。建造小人就是在控制下一步步構造出來的
//p; 設計方式: 函式的形參用父類,實際傳去具體子類
#include using namespace std;
class builder
virtual void buildbody() {}
virtual void buildleftarm(){}
virtual void buildrightarm() {}
virtual void buildleftleg() {}
virtual void buildrightleg() {}
};
//構造瘦人
建造者模式與工廠模式的區別:
工廠模式一般都是建立乙個產品,注重的是把這個產品建立出來就行,只要建立出來,不關心這 產品的組成部分。從**上看,工廠模式就是乙個方法,用這個方法就能生產出產品。
建造者模式也是建立乙個產品,但是不僅要把這個產品建立出來,還要關係這個產品的組成細節,組成過程。從**上看,建造者模式在建造產品時,這個產品有很多方法,建造者模式會根據這些相同 方法但是不同執行順序建造出不同組成細節的產品。
工廠模式注重的物件建立的結果,而建立者模式注重的物件建立的過程。
軟體設計模式修煉 建造者模式
建造者模式是最複雜的建立型模式,它將客戶端與包含多個組成部分的複雜物件的建立過程分離,客戶端無須知道複雜物件的內部組成部分與裝配部分,只需知道建造者的型別即可。建造者模式用於建立乙個包含對個組成部分的複雜物件,可以返回乙個完整的產品物件給使用者。使用者無須知道建立過程和內部細節,只需直接使用建立好的...
設計模式 建造者模式
在gof的23種設計模式中對builder pattern的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...
設計模式建造者模式
今天看了乙個設計模式。總結下,以免忘了。如何引入建造者模式的呢?作者舉了個例子。建造小人。當然需要 頭,左手,右手,左腳,右腳,軀幹。建造的過程使用 使用類裡面的方法就行了。但是如果需要乙個胖的小人,乙個瘦的小人呢?就需要重新構造乙個胖人類,乙個瘦人類。當然 使用者還需要自己處理構造的過程。這樣 就...