模式定義: 將乙個複雜物件的構建與他的表示分離,使得可以使用同樣的構建構成構成不同的表示。這裡呢以「色彩斑斕」作為建造者模式的乙個比喻。就好比我們的顏色組成一樣,同樣是rgb三部分組成,不同的rgb值就能組成不同的顏色。
涉及到的有4個模型:
列個demo。先是產品模型,有abcde等幾種部分(零件):
public
class
product
public
void
seta
(string a)
public string getb()
public
void
setb
(string b)
public string getc()
public
void
setc
(string c)
public string getd()
public
void
setd
(string d)
public string gete()
public
void
sete
(string e)
}
抽象建造者:
public
abstract
class
builder
}
具體建造者,提供抽象建造者方法的全部具體實現。
public
class
builderimpl
extends
builder
@override
void
setproductb()
@override
void
setproductc()
@override
void
setproductd()
@override
void
setproducte()
}
導演者或者指揮者,開始構建:
public
class
director
public product builda()
}
最後是作為客戶端(呼叫者)開發者的使用,就獲取到了產品product的例項了。
director dic =
newdirector()
;product product = dic.
builda()
;
應用場景:
優點:缺點:
小結 :建造者是一種建立型設計模式,針對那些構成複雜又多變的物件有奇效。很多時候我們需要建造的產品就只有乙個,就可以將抽象建造者這個角色模型省略掉。並且還可以將導演者角色模型與具體建造者模型結合成乙個模型角色來使用,設計成一種鏈式結構的呼叫體系。就像dialog的建立。
設計模式之建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟 設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設 計模式 和...
設計模式之建造者模式
建造者模式也叫生成器模式,是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承或過載的方式,動態的建立具有復合屬性的物件。應用場景 物件的建立 builder 模式是為物件的建立而設計的模式 建立的是乙個復合物件 被建立的物件為乙個具有復合屬性的復合物件 關...
設計模式之建造者模式
在做服務介面的時候,往往在業務處理之前需要做業務校驗,格式校驗等業務前處理。這些介面有個相同的特徵,就是必須經過這些處理步驟之後才能做核心的業務處理,拓展的服務介面也必須經過這些處理。基於這個特徵,我們就來分析一下設計模式中,建造者模式。我們先建乙個基礎的服務類 public abstract cl...