欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Builder Pattern建造者模式詳解及實例

 更新時間:2017年01月11日 11:58:41   投稿:lqh  
這篇文章主要介紹了Java Builder Pattern建造者模式詳解及實例的相關(guān)資料,需要的朋友可以參考下

Java Builder Pattern

1.概念

    將一個復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。 [構(gòu)建與表示分離,同構(gòu)建不同表示]

    與抽象工廠的區(qū)別:在建造者模式里,有個指導(dǎo)者,由指導(dǎo)者來管理建造者,用戶是與指導(dǎo)者聯(lián)系的,指導(dǎo)者聯(lián)系建造者最后得到產(chǎn)品。即建造模式可以強制實行一種分步驟進行的建造過程。

  建造模式是將復(fù)雜的內(nèi)部創(chuàng)建封裝在內(nèi)部,對于外部調(diào)用的人來說,只需要傳入建造者和建造工具,對于內(nèi)部是如何建造成成品的,調(diào)用者無需關(guān)心。

  舉個簡單的例子,如汽車,有很多部件,車輪,方向盤,發(fā)動機還有各種小零件等等,部件很多,但遠不止這些,如何將這些部件裝配成一部汽車,這個裝配過程也很復(fù)雜(需要很好的組裝技術(shù)), builder模式就是為了將部件和組裝分開。

2.UML圖

3.代碼

 public interface Builder { 
    void buildPartA(); 
    void buildPartB(); 
    void buildPartC(); 
  
    Product getResult(); 
  } 

  //具體建造工具
  public class ConcreteBuilder implements Builder { 
    Part partA, partB, partC; 

    public void buildPartA() {
      //這里是具體如何構(gòu)建partA的代碼
    }; 
    public void buildPartB() { 
      //這里是具體如何構(gòu)建partB的代碼
    }; 
     public void buildPartC() { 
      //這里是具體如何構(gòu)建partB的代碼
    }; 
     public Product getResult() { 
      //返回最后組裝成品結(jié)果
    }; 
  }

  //建造者
  public class Director {
    private Builder builder; 
  
    public Director( Builder builder ) { 
      this.builder = builder; 
    } 
    public void construct() { 
      builder.buildPartA();
      builder.buildPartB();
      builder.buildPartC(); 
    } 
  } 


  public interface Product { }
  public interface Part { }

    下面是調(diào)用builder的方法:

  ConcreteBuilder builder = new ConcreteBuilder();
  Director director = new Director( builder ); 
  
  director.construct(); 
  Product product = builder.getResult();

4.應(yīng)用場景

在Java的應(yīng)用中JavaMail使用到了該模式。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 淺談Maven的安裝及修改為阿里云下載依賴

    淺談Maven的安裝及修改為阿里云下載依賴

    下面小編就為大家?guī)硪黄獪\談Maven的安裝及修改為阿里云下載依賴。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java詳解Swing中的幾種常用按鈕的使用

    Java詳解Swing中的幾種常用按鈕的使用

    這篇文章主要介紹了怎么用Java來創(chuàng)建和使用Swing中的幾種常用按鈕,按鈕是我們經(jīng)常要用的工具,但是你有想過自己怎么去實現(xiàn)它嗎,感興趣的朋友跟隨文章往下看看吧
    2022-04-04
  • Java 數(shù)組獲取最大和最小值的實例實現(xiàn)

    Java 數(shù)組獲取最大和最小值的實例實現(xiàn)

    這篇文章主要介紹了Java 數(shù)組獲取最大和最小值的實例實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • IDEA創(chuàng)建Java項目文件并運行教程解析

    IDEA創(chuàng)建Java項目文件并運行教程解析

    這篇文章主要介紹了IDEA創(chuàng)建Java項目文件并運行教程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 詳解java_ 集合綜合案例:斗地主

    詳解java_ 集合綜合案例:斗地主

    這篇文章主要介紹了java_ 集合綜合案例:斗地主,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring Boot CLI使用教程

    Spring Boot CLI使用教程

    本篇文章主要介紹了Spring Boot CLI使用教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • java中的數(shù)學(xué)計算函數(shù)的總結(jié)

    java中的數(shù)學(xué)計算函數(shù)的總結(jié)

    這篇文章主要介紹了java中的數(shù)學(xué)計算函數(shù)的總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • JAVA API 實用類 String詳解

    JAVA API 實用類 String詳解

    這篇文章主要介紹了java String的深入理解的相關(guān)資料,希望通過本文大家能理解String的用法,需要的朋友可以參考下
    2021-10-10
  • Spring中@Value使用詳解及SPEL表達式

    Spring中@Value使用詳解及SPEL表達式

    這篇文章主要介紹了Spring中@Value使用詳解及SPEL表達式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • java中實現(xiàn)視頻處理以及播放功能代碼詳解

    java中實現(xiàn)視頻處理以及播放功能代碼詳解

    這篇文章主要給大家介紹了關(guān)于java中實現(xiàn)視頻處理以及播放功能的相關(guān)資料,最近要實現(xiàn)一套音視頻播放程序,所以這里給大家總結(jié)下,需要的朋友可以參考下
    2023-09-09

最新評論