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

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

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();
 }
}

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久综合中文字幕佐佐木希 | 欧美vpswindows动物 | 国产欧美精品一区二区三区 | ipx 在线播放 | 国产99页 | 国产精品探花一区在线观看 | 亚洲日本aⅴ片在线观看香蕉 | 3黑人巨大vs北岛玲 3d肉浦团在线观看 3d动漫免费 | 亚裔aⅴ艳星katsuni | 精品国产一区二区三区国产馆 | 国产91视频网 | 无码精品AV久久久奶水 | 99热这里只有精品国产在热久久 | 四虎精品永久免费 | 日本xxxⅹ69xxxx护士 | 韩日一区二区三区 | 久久综合狠狠综合狠狠 | 国内精品露脸在线视频播放 | 国产亚洲精品自在线亚洲情侣 | 麻豆网站在线观看 | 撕开老师的丝袜白丝扒开粉嫩的小 | 久久久大香菇 | 亚洲午夜视频 | 久久性综合亚洲精品电影网 | 免费看男女做好爽好硬视频 | 9久热这里只有精品视频在线观看 | 91果冻制片厂天美传媒 | 日韩一级免费毛片 | 被老外操 | 色猪视频 | 精品人伦一区二区三区潘金莲 | 美女扒下内裤让男人桶的图片 | 国产午夜精品不卡视频 | 色噜噜狠狠色综合 | 亚洲精品精品一区 | 青草青草久热精品视频在线网站 | 99久久6er热免费精品 | 国产精品亚洲午夜一区二区三区 | 91最新高端约会系列178 | 五月香婷婷 | 日本午夜影院 |