動機:建立乙個複雜的物件,這個物件各個部分劇烈變化,但是組合到一起卻相對穩定(跟template method很像)
public
class
templatemethodtest
private
void
step2()
private
void
step3()
private
void
step4()
private
void
step5()
public
void
run()}
class
test
implements
templatemethodtest
@override
private
void
step2()
@override
private
void
step3()
@override
private
void
step4()
@override
private
void
step5()
}public
class
test
extends
templatemethodtest
}
這裡可以優化,分離步驟執行順序和分步驟具體實現
public
class
templatemethodtest
private
void
step1()
private
void
step2()
private
void
step3()
private
void
step4()
private
void
step5()
}class
director
public
void
run()}
//c++沒辦法在建構函式中呼叫,則分離出來
class
test
implements
templatemethodtest
@override
private
void
step2()
@override
private
void
step3()
@override
private
void
step4()
@override
private
void
step5()
}public
class
test
extends
templatemethodtest
}
Java構建器模式
當建立物件需要傳入多個引數的時候我們通常會根據引數的數量寫不同的構造器,具體如下 public a int a public a int a,int b public a int a,int b,int c 根據不同的引數呼叫不同的構造器,但是當引數多了的時候,這種方式不夠靈活,所以會實現動態傳參的...
構建器模式(Builder)
構建複雜物件 超多的屬性 也可以乙個乙個set 方法 但是根據業務邏輯將屬性分組,採用鏈式呼叫更清晰 介面方式 1.建立某一構造器介面 根據相應複雜物件設計介面方法 2.建立實現類 複雜物件例項,每個方法實現中賦值複雜物件並最終方法retrun 物件 3.呼叫形式 terrainbuilder bu...
設計模式 構建器 建造者 模式
定義 使用多個簡單的物件構建成乙個複雜的物件。個人理解 講乙個整體的各個部分組合到一起,例如乙個人有年齡 身高等屬性,統計資訊時可能會用到這個人某幾個屬性,那麼需要什麼就把什麼組合到一起。優點 建造者建造自己的東西,也可擴充套件。缺點 當內部比較複雜的時候,就會對應的建造很多類。public cla...