最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

輕松掌握Java建造者模式

 更新時間:2016年10月10日 11:32:03   作者:斷了聯(lián)系  
這篇文章主要幫助大家輕松掌握Java建造者模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

特點:

    1、分工更加明確,組建和構(gòu)造分開,能更好的控制產(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ā)中可能對應一個類 
 //構(gòu)造器及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)抽象構(gòu)建類,也可能出現(xiàn)完全不同的產(chǎn)品,所以,從中可以發(fā)現(xiàn),構(gòu)建者模式更加的抽象化,流程化。

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot+VUE實現(xiàn)數(shù)據(jù)表格的實戰(zhàn)

    SpringBoot+VUE實現(xiàn)數(shù)據(jù)表格的實戰(zhàn)

    本文將使用VUE+SpringBoot+MybatisPlus,以前后端分離的形式來實現(xiàn)數(shù)據(jù)表格在前端的渲染,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • 詳細解讀Java的串口編程

    詳細解讀Java的串口編程

    這篇文章主要介紹了詳細解讀Java的串口編程,而文中講解的示例主要針對于JavaComm和RxTx這兩個庫,需要的朋友可以參考下
    2015-08-08
  • 一篇文章帶你深入了解Java線程池

    一篇文章帶你深入了解Java線程池

    這篇文章主要介紹了Java 線程池的相關(guān)資料,文中講解非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下,希望能給你帶來幫助
    2021-08-08
  • js判斷是否是移動設備登陸網(wǎng)頁的簡單方法

    js判斷是否是移動設備登陸網(wǎng)頁的簡單方法

    這篇文章主要介紹了js判斷是否是移動設備登陸網(wǎng)頁的簡單方法,需要的朋友可以參考下
    2014-02-02
  • 教你用MAT工具分析Java堆內(nèi)存泄漏問題的解決方法

    教你用MAT工具分析Java堆內(nèi)存泄漏問題的解決方法

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著如何使用MAT工具分析Java堆內(nèi)存泄漏問題的解決方法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 解決Java編譯時錯誤:A JNI error has occurred,please check your installation and try again

    解決Java編譯時錯誤:A JNI error has occurred,ple

    這篇文章主要介紹了解決Java編譯時錯誤:A JNI error has occurred,please check your installation and try again,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Java網(wǎng)絡編程之UDP協(xié)議詳細解讀

    Java網(wǎng)絡編程之UDP協(xié)議詳細解讀

    這篇文章主要介紹了Java網(wǎng)絡編程之UDP協(xié)議詳細解讀,UDP協(xié)議全稱是用戶數(shù)據(jù)報協(xié)議,在網(wǎng)絡中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無連接的協(xié)議,在OSI模型中,在第四層——傳輸層,處于IP協(xié)議的上一層,需要的朋友可以參考下
    2023-12-12
  • java定義通用返回結(jié)果類ResultVO使用示例詳解

    java定義通用返回結(jié)果類ResultVO使用示例詳解

    這篇文章主要為大家介紹了java定義通用返回結(jié)果類ResultVO使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 關(guān)于JSON解析中獲取不存在的key問題

    關(guān)于JSON解析中獲取不存在的key問題

    這篇文章主要介紹了關(guān)于JSON解析中獲取不存在的key問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • java編譯器的基礎(chǔ)知識點

    java編譯器的基礎(chǔ)知識點

    在本篇文章里小編給大家整理的是一篇關(guān)于java編譯器的基礎(chǔ)知識點內(nèi)容,有興趣的朋友們可以閱讀下。
    2020-02-02

最新評論

名山县| 梅州市| 珲春市| 灵宝市| 平远县| 岳阳市| 益阳市| 浙江省| 永泰县| 邳州市| 长兴县| 浦城县| 邯郸市| 云安县| 蛟河市| 盈江县| 汤阴县| 辽源市| 延安市| 阳信县| 阿巴嘎旗| 汉沽区| 余庆县| 宁阳县| 台北市| 马关县| 大洼县| 竹山县| 武山县| 嘉禾县| 和静县| 如东县| 济源市| 水富县| 大城县| 永安市| 鄂州市| 云阳县| 页游| 邵阳市| 弥勒县|