建造者(builder)模式
建造者(builder)模式將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。
建造者模式包含乙個抽象的builder類,還有它的若干子類——concretebuilder,關鍵是看指揮官director,director裡面的方法construct()其實包含了builder指標或引用的形參,由客戶端傳入某個 concreatebuilder物件。由多型性可知,客戶端傳進來的concretebuilder是誰,就呼叫誰的方法。
1.隔離了構建的步驟和具體的實現,為產品的具體實現提供了靈活度。
2.封裝和抽象了每個步驟的實現,實現了依賴倒轉原則。
3.封裝了具體的步驟,減少了**的冗餘。
1.要求構建產品的步驟(演算法)是不能劇烈變化的,最好是不變的,這樣就影響了靈活度。
具體**:
//建造者class
builder;//
具體建造者1
class concretebuilder1: public
builder
void buildpart2()
};//
具體建造者2
class concretebuilder2: public
builder
void buildpart2()
};//
指揮者,注意其方法的引數是抽象建造者的指標
class
director
void
build()
};
客戶使用方法:
intmain()
參考:
設計模式4 建造者模式
首先說說建造者模式要解決乙個什麼樣的問題 流程控制,即保證方法先後順序正確且沒有遺漏.用於靈活指導操作細節.建造者模式包括 乙個導演類 用於規定操作順序 乙個建造者介面 用於規定建造者的操作 具體的建造者 建造者的具體實現類 例如 public class buildertest class fil...
4 設計模式 建造者模式
前段時間一直忙於考證,沒有整理,開啟部落格感覺又好像過了很久的樣子,哎,鬆懈時間過得真快,今天整理一波建造者模式。從字面意思建造者模式更傾向於建造。例如計算機包含滑鼠,鍵盤,耳機,音響,印表機等等硬體裝置。這是乙個相對比較複雜的物件。而我們要建立的是計算機這個整體,如果採用工廠模式就沒那麼專業。因為...
設計模式 4 建造者模式
說明 將很多事情,一件一件的按順序組裝形成,stringbuilding就是建造者模式。場景 當乙個流程由很多功能組成,可以直接使用,然後每個實現就好。實現 public class customer 組裝電腦需要的步驟,這裡只組裝了cpu,硬碟 public abstract class ling...