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

Java Builder Pattern建造者模式詳解及實(shí)例

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

Java Builder Pattern

1.概念

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

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

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

  舉個(gè)簡單的例子,如汽車,有很多部件,車輪,方向盤,發(fā)動(dòng)機(jī)還有各種小零件等等,部件很多,但遠(yuǎn)不止這些,如何將這些部件裝配成一部汽車,這個(gè)裝配過程也很復(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)用場(chǎng)景

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

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

相關(guān)文章

  • String的兩種初始化方法講解

    String的兩種初始化方法講解

    今天小編就為大家分享一篇關(guān)于String的兩種初始化方法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • SpringBoot下RabbitMq實(shí)現(xiàn)定時(shí)任務(wù)

    SpringBoot下RabbitMq實(shí)現(xiàn)定時(shí)任務(wù)

    這篇文章主要為大家詳細(xì)介紹了SpringBoot下RabbitMq實(shí)現(xiàn)定時(shí)任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Spring Boot 工程的創(chuàng)建和運(yùn)行(圖文)

    Spring Boot 工程的創(chuàng)建和運(yùn)行(圖文)

    這篇文章主要介紹了Spring Boot 工程的創(chuàng)建和運(yùn)行(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • java常見報(bào)錯(cuò):Array?Out?of?Bounds兩種解決辦法

    java常見報(bào)錯(cuò):Array?Out?of?Bounds兩種解決辦法

    這篇文章主要給大家介紹了關(guān)于java報(bào)錯(cuò)Array?Out?of?Bounds的兩種解決辦法,Array out of bounds錯(cuò)誤表示你嘗試訪問數(shù)組中不存在的索引,即索引小于零或者大于等于數(shù)組的大小,文中通過代碼將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 詳解Java中二分法的基本思路和實(shí)現(xiàn)

    詳解Java中二分法的基本思路和實(shí)現(xiàn)

    二分法是一個(gè)非常高效的算法,它常常用于計(jì)算機(jī)的查找過程中。本文將通過示例為大家詳細(xì)講講二分法的基本思路和實(shí)現(xiàn),感興趣的可以了解一下
    2022-08-08
  • Java通過反射查看類的信息示例

    Java通過反射查看類的信息示例

    這篇文章主要介紹了Java通過反射查看類的信息,結(jié)合實(shí)例形式詳細(xì)分析了java基于反射獲取類信息的相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Java利用opencv實(shí)現(xiàn)用字符展示視頻或圖片的方法

    Java利用opencv實(shí)現(xiàn)用字符展示視頻或圖片的方法

    這篇文章主要介紹了Java利用opencv實(shí)現(xiàn)用字符展示視頻或圖片的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • MyBatis中Mapper的注入問題詳解

    MyBatis中Mapper的注入問題詳解

    這篇文章主要介紹了MyBatis中Mapper的注入問題,我知道在 SpringBoot 體系中,MyBatis 對(duì) Mapper 的注入常見的方式有 2 種,具體哪兩種方法跟隨小編一起看看吧
    2021-09-09
  • Java流式操作之Collectors工具類操作指南

    Java流式操作之Collectors工具類操作指南

    Collectors是Collector的工具類,類中提供了很多流收集、歸約、分組、分區(qū)等方法,方便我們直接使用,下面這篇文章主要給大家介紹了關(guān)于Java流式操作之Collectors工具類操作的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • 源碼解讀Spring-Integration執(zhí)行過程

    源碼解讀Spring-Integration執(zhí)行過程

    Spring-Integration基于Spring,在應(yīng)用程序中啟用了輕量級(jí)消息傳遞,并支持通過聲明式適配器與外部系統(tǒng)集成,今天主要是看個(gè)簡單的hello word進(jìn)來分析下整個(gè)執(zhí)行過程,感興趣的朋友一起看看吧
    2021-06-06

最新評(píng)論

彭州市| 来宾市| 双桥区| 高要市| 灌云县| 修武县| 广安市| 太白县| 准格尔旗| 稷山县| 绥中县| 青州市| 崇阳县| 云浮市| 澄迈县| 天长市| 灵石县| 丽水市| 新安县| 肥西县| 洛南县| 仲巴县| 汶上县| 泸水县| 东宁县| 石阡县| 卫辉市| 新民市| 汶川县| 景宁| 城口县| 和硕县| 密山市| 德昌县| 青铜峡市| 垦利县| 桃源县| 甘孜县| 黄陵县| 淅川县| 汝城县|