国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

輕松掌握Java建造者模式

2019-11-26 13:44:22
字體:
來源:轉載
供稿:網(wǎng)友

建造者模式針對的是復雜對象的構建,比如一個產(chǎn)品有多個部分構成,每個部分都可以單獨進行生產(chǎn),這時候就可以用建造者模式,由Builder構造產(chǎn)品的每個部分,然后又director完成最后產(chǎn)品的組裝。

特點:

    1、分工更加明確,組建和構造分開,能更好的控制產(chǎn)品的生產(chǎn)。

    2、容易擴展,有新的需求的時候,只要實現(xiàn)Builder借口就可以了。

企業(yè)級開發(fā)和常用框架中的應用:JMail

組成:產(chǎn)品類,抽象建造者,建造者,導演。

產(chǎn)品類:

public class Product{ private String partA;//產(chǎn)品的某個部分,實際開發(fā)中可能對應一個類  private String partB;//產(chǎn)品的某個部分,實際開發(fā)中可能對應一個類  private String partC;//產(chǎn)品的某個部分,實際開發(fā)中可能對應一個類  //構造器及set、get方法}

抽象建造者:

//也可以是抽象類public interface Builder{  public void setPartA(String partA);  public void setPartB(String partB);  public void setPartC(String partC);}

建造者實現(xiàn)類:

public class BuilderImpl implements Builder{  private Product product;  public BuilderImpl(){ product = new Product(); }  public void builderPartA(){ String partA = new String();//模擬工廠方法生產(chǎn)產(chǎn)品的某一個部分 product.setPartA(partA); }  public void builderPartB(){ String partB = new String();//模擬工廠方法生產(chǎn)產(chǎn)品的某一個部分 product.setPartB(partB); }  public void setPartC(){ String partC = new String();//模擬工廠方法生產(chǎn)產(chǎn)品的某一個部分 product.setPartC(partC); }  public Product getProduct(){ return this.product; }}

導演類:

public class Director{ private Builder b ;  public Director(Builder newB){ this.b = newB; }  public void createBuilder(Builder b){ this.b = b; }  public Product constructProduct(){ b.builderPartA(); b.builderPartB(); b.builderPartC(); }}

測試類:

public class Demo{ public static void main(String[] args){ Builder b = new BuilderImpl(); Director d = new Director(); d.createBuilder(b); Product p = c.constructProduct(); }}

從上面的例子中我們不難發(fā)現(xiàn),如果我們另外實現(xiàn)導演類,完全可能組裝出另一個不同的產(chǎn)品,因為導演類控制了產(chǎn)品的組裝,同樣的,如果我們重新實現(xiàn)抽象構建類,也可能出現(xiàn)完全不同的產(chǎn)品,所以,從中可以發(fā)現(xiàn),構建者模式更加的抽象化,流程化。

相比于抽象工廠模式,不難發(fā)現(xiàn)這兩者驚人的相似,但為什么還會分出兩種不同的設計模式呢,其實重點就在產(chǎn)品的復雜程度和抽象程度上,建造者模式比抽象工廠模式更加的抽象化,復雜化,也就是說建造者模式應對的產(chǎn)品比抽象工廠應對的產(chǎn)品更加復雜,同時,在產(chǎn)品生產(chǎn)流程長更加的抽象。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 留坝县| 延寿县| 通榆县| 巴青县| 寿光市| 久治县| 集贤县| 鄢陵县| 汤阴县| 新巴尔虎右旗| 金塔县| 神木县| 桃源县| 营口市| 新巴尔虎右旗| 尚义县| 鸡东县| 马公市| 和平县| 卢湾区| 武功县| 兴化市| 遵化市| 南丰县| 饶平县| 元阳县| 城步| 同德县| 长白| 白玉县| 若尔盖县| 永登县| 铜鼓县| 东阳市| 青铜峡市| 岳西县| 金湖县| 封丘县| 宁津县| 武胜县| 白玉县|