激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java Builder Pattern建造者模式詳解及實例

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

2020-07-25 15:33JAVA教程網(wǎng) Java教程

這篇文章主要介紹了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)品。即建造模式可以強制實行一種分步驟進(jìn)行的建造過程。

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

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

2.UML圖

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

3.代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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的方法:

?
1
2
3
4
5
ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );
 
director.construct();
Product product = builder.getResult();

4.應(yīng)用場景

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

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

原文鏈接:http://blog.csdn.net/qq_35101189/article/details/54341434

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久四虎电影 | 欧美人与牲禽动交精品一区 | 国产午夜精品久久久久久免费视 | 狠狠干网站 | 欧美日韩精品不卡一区二区三区 | 性欧美在线视频 | 免费在线观看成人av | 欧美一级片在线 | 桥本有菜免费av一区二区三区 | 中文字幕四区 | 全黄性性激高免费视频 | 精品久久久久久久久久久αⅴ | 91在线色 | 黄色男女视频 | 欧美一级不卡视频 | av在线免费电影 | 精品国产视频一区二区三区 | 免费看污视频在线观看 | 欧美成人精品不卡视频在线观看 | 日韩电影一区二区 | 午夜精品福利视频 | 在线免费观看日韩视频 | 少妇一级淫片免费看 | 日本不卡一区二区在线观看 | 免费国产一级特黄久久 | 午夜影视一区二区 | 欧美三级日本三级少妇99 | 亚洲成人自拍电影 | av在线视 | av中文字幕免费在线观看 | 欧美成人免费小视频 | 91成人在线免费视频 | 日本人乱人乱亲乱色视频观看 | 久久久精品视频网站 | av影院在线 | 国产色91| 国产网站黄| 国产一级毛片在线看 | 1000部精品久久久久久久久 | 二级大黄大片高清在线视频 | 国产在线精品一区二区三区 |