建造者模式是將乙個複雜物件的建立過程與他的表示相分離,使得同樣的構建過程可以有不同的表示。建立者模式的使用者只需要提供建立需要的元件,其建立的細節不需要考慮,屬於建立型模式。
1、產品的建立過程需要多個元件,不同的組合會產生不同的效果;
2、產品的組裝需要有固定的順序,而產品的使用者不需要了解組裝的過程,只需要提供組裝產品所需的元件;
3、產品的組裝需要有必須的幾個元件,若沒有則無法建立成功;
例如:假設一台汽車需要有發動機、變速箱和真皮座椅,發動機和變速箱是汽車必須的,真皮座椅只有高配汽車才會有,假設汽車的組裝過程十分複雜,產品的使用方不需要關係細節,只需要告訴汽車配置就好了,**例項如下:
/**
* 汽車
*/public
class
car// 私有化構造器,防止在外面用new的方式建立
private
car(builder builder)
public
static
class
builder
public builder setgearbox
(string gearbox)
public builder setleatherseat
(string leatherseat)
public car builder()
if(stringutils.
isempty
(gearbox)
)// 拼裝汽車組裝過程
this
.builderprocess =
"汽車組裝過程:"
+ engine +
","+ gearbox +
","+ leatherseat;
return
newcar
(this);
}}}
public
class
test
}
測試結果:
高配汽車:
汽車組裝過程:2.0t發動機,
低配汽車:
汽車組裝過程:2.0t發動機,
9at變速箱,null
建造者不必拘泥於一種寫法,可以根據業務場景靈活變通
工廠模式:建立的是同一型別的多個例項,同乙個產品的建立過程是一樣的,有批量建立的意思;
建立者模式:產品由各種複雜的不同元件組成,不同的元件建立出來的產品是不一樣的,有定製化產品的意思;
建造者模式
1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...
建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
建造者模式
建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...