建造者模式屬於建立型模式,就是要更好的建立物件。很多時候我們建立乙個物件的過程是十分複雜的,這種複雜性主要的原因是因為乙個物件的各個部件十分的複雜或者是非常零散,需要使用該物件如果去臨時組裝會非常的麻煩,關鍵是客戶端並不關心這種組裝的過程而只需要指定的物件,建造者模式就是這樣的設計模式,可以讓我們直接獲取建造好的物件。先看uml圖。
建造者模式涉及到的角色有四個
product : 產品的介面,就是我們最終製造出來的產品,通常是乙個抽象類或者介面,定義產品的基本函式。
builder : 建立者介面,負責定義抽象的需要建立的函式。
concreatebuilder : 具體的建立者接實現,完成具體建立細節。
director : 導演類,維護乙個建立介面完成建立。
例子,汽車的組裝是固定的,但是不同的零件有可能設計是非常不同的,我們就是要將不同的輪子和發動機組裝起來。
產品角色car與兩個具體的實現。
abstract
class
car ;
void setengine(string engine) ;
void printconf() ;
}class
bmwextends
car
}class
tesla
extends
car
}
builder介面:
inte***ce builder
具體的建造者角色:
class
teslabuilder
implements
builder
public car getcar()
}
導演類:
class director
public car getcar ()
}
客戶端呼叫:
director director = new director(new teslabuilder());
car car = director.getcar();
car.printconf();
建造者模式和工廠模式非常相似,確實是非常的相似,建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程。 設計模式之建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟 設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設 計模式 和...
設計模式之建造者模式
建造者模式也叫生成器模式,是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承或過載的方式,動態的建立具有復合屬性的物件。應用場景 物件的建立 builder 模式是為物件的建立而設計的模式 建立的是乙個復合物件 被建立的物件為乙個具有復合屬性的復合物件 關...
設計模式之建造者模式
在做服務介面的時候,往往在業務處理之前需要做業務校驗,格式校驗等業務前處理。這些介面有個相同的特徵,就是必須經過這些處理步驟之後才能做核心的業務處理,拓展的服務介面也必須經過這些處理。基於這個特徵,我們就來分析一下設計模式中,建造者模式。我們先建乙個基礎的服務類 public abstract cl...