一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 輕松掌握Java建造者模式

輕松掌握Java建造者模式

2020-06-21 15:25斷了聯系 JAVA教程

這篇文章主要幫助大家輕松掌握Java建造者模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

特點:

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

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

企業級開發和常用框架中的應用:JMail

組成:產品類,抽象建造者,建造者,導演。

產品類:

?
1
2
3
4
5
6
public class Product{
 private String partA;//產品的某個部分,實際開發中可能對應一個類
 private String partB;//產品的某個部分,實際開發中可能對應一個類
 private String partC;//產品的某個部分,實際開發中可能對應一個類
 //構造器及set、get方法
}

抽象建造者:

?
1
2
3
4
5
6
//也可以是抽象類
public interface Builder{
 public void setPartA(String partA);
 public void setPartB(String partB);
 public void setPartC(String partC);
}

建造者實現類:

?
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
public class BuilderImpl implements Builder{
 
 private Product product;
 
 public BuilderImpl(){
 product = new Product();
 }
 
 public void builderPartA(){
 String partA = new String();//模擬工廠方法生產產品的某一個部分
 product.setPartA(partA);
 }
 
 public void builderPartB(){
 String partB = new String();//模擬工廠方法生產產品的某一個部分
 product.setPartB(partB);
 }
 
 public void setPartC(){
 String partC = new String();//模擬工廠方法生產產品的某一個部分
 product.setPartC(partC);
 }
 
 public Product getProduct(){
 return this.product;
 }
}

導演類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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();
 }
}

測試類:

?
1
2
3
4
5
6
7
8
public class Demo{
 public static void main(String[] args){
 Builder b = new BuilderImpl();
 Director d = new Director();
 d.createBuilder(b);
 Product p = c.constructProduct();
 }
}

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: gay男强壮军人chinese | 欧美香蕉人人人人人人爱 | 日韩精品成人a在线观看 | 日韩国产欧美精品综合二区 | 99影视在线视频免费观看 | 久久爽狠狠添AV激情五月 | 四虎精品在线观看 | 成年人视频在线播放 | 欧美一区二区福利视频 | 国内精品一区二区三区东京 | 亚洲欧洲日产国码天堂 | 国产91无毒不卡在线观看 | 99热在线免费观看 | 亚洲h片 | 欧美大片一区 | 国产精品亚洲午夜一区二区三区 | 99热这里只有精品一区二区三区 | 果冻传媒在线播放观看228集 | 猫扑俩性 | 亚洲国产中文字幕在线视频综合 | 国产精品一二三 | 国产精视频 | 国产成人综合久久精品红 | 国产精品激情综合久久 | 草莓香蕉榴莲丝瓜秋葵绿巨人在线看 | 亚洲高清一区二区三区四区 | 久久青青草原综合伊人 | 日本人交换乱理伦片 | 亚洲国产欧美在线看片 | 日本一道本中文字幕 | 欧美成人三级伦在线观看 | 青青草国产一区二区三区 | 国产色视频一区二区三区 | 欧美日韩中文国产一区 | 国产91无毒不卡在线观看 | 成人福利在线 | 青草青草视频 | 久久大胆视频 | 国产一卡二卡3卡4卡更新 | 国产精品免费看香蕉 | 国产在线播放一区 |