在現實生活中如果我們需要製造乙個比較複雜的東西,比如手機,台式電腦,或者汽車等。如果我們要製造一台電腦的話我們會先將電腦所需的各個部件買回來然後在組裝起來成為一台電腦。這裡電腦所需的各個元件比如顯示器,cpu,硬碟等等都是由不同的廠商生產的,然後被我們不同的組合而成了不同的產品。這是現實生活中和建造者模式類似的場景,而在程式中也一樣有些情況下我們需要建立比較複雜的物件,在這種場景下我們可以通過建造者模式來實現,
實際開發中,我們所需要的物件構建時非常複雜,且有很多步驟需要處理時,這時建造者模式就很適合。
分離了物件子元件的單獨構造(由builder來負責)和裝配(由director負責)。 從而可以構造出複雜的物件。這個模式適用於:某個物件的構建過程複雜的情況下使用。
由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以做出不同的物件;相同的構建器,不同的裝配順序也可以做出不同的物件。也就是實現了構建演算法、裝配演算法的解耦,實現了更好的復用
建立我們的太空飛船類,也就是我們最終的產品類
package com.dpb.build;
/** * 太空飛船
* @author 波波烤鴨
* */
public
class
airship
public orbitalmodule getorbitalmodule()
public
void
setorbitalmodule
(orbitalmodule orbitalmodule)
public engine getengine()
public
void
setengine
(engine engine)
public escapetower getescapetower()
public
void
setescapetower
(escapetower escapetower)
}// 軌道艙
class
orbitalmodule
public
void
setname
(string name)
public
orbitalmodule
(string name)
}// 發動機
class
engine
public
void
setname
(string name)
public
engine
(string name)
}// 逃生塔
class
escapetower
public
void
setname
(string name)
public
escapetower
(string name)
}
定義我們的元件構造者及實現元件構造者
/**
* 定義飛船建造的規則
* @author dengp
* */
public
inte***ce
airshipbuild
package com.dpb.build;
/** * 構建飛船相關的元件
* @author dengp
* */
public
class
dpbairshipbuild
implements
airshipbuild
@override
public engine buildengine()
@override
public escapetower buildeescapetower()
}
定義產品組裝介面及組裝的實現
package com.dpb.build;
public
inte***ce
airshipdirector
package com.dpb.build;
/** * 組裝波波牌飛船
* @author dengp
* */
public
class
dpbairshipdirector
implements
airshipdirector
@override
public airship directorairship()
}
public
class
client
}
輸出結果
烤鴨牌發動機
烤鴨牌軌道艙
烤鴨牌逃生艙
發射...
sql中的preparedstatement
jdom中,dombuilder、saxbuilder
java 建造者模式
一 話不多說,直接上 這個模式的使用場景很多public class student public studentbuilder set string public studentbuilder setschool string school public studentbuilder setage...
java建造者模式
建造者模式 builder 用以自由構建物件,主要功能就是代替物件的建構函式,更加自由化。author gjing class custom private custom builder builder override public string tostring public static cl...
java之建造者模式
將乙個複雜物件的構造與它的表示分離,使同樣的構建過程可以建立不同的表示,這樣的設計模式被稱為建造者模式。依賴倒轉原則,抽象不應該依賴細節,細節應該依賴與抽象 建造者模式的角色定義,在建造者模式中存在以下4個角色 builder 為建立乙個產品物件的各個部件指定抽象介面。concretebuilder...