首頁 >Java >java教程 >Java Builder Pattern建造者模式詳解及實例

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

高洛峰
高洛峰原創
2017-01-24 15:14:241463瀏覽

Java Builder Pattern

1.概念

    將一個複雜的構建與其表示相分離,使得同樣的構建過程可以創建不同的表示。 [建造與表示分離,同建造不同表示]

    與抽象工廠的區別:在建造者模式裡,有個指導者,由指導者來管理建造者,使用者是與指導者聯繫的,指導者聯繫建造者最後得到產品。即建造模式可以強制實行一種分步驟進行的建造過程。

  建造模式是將複雜的內部創建封裝在內部,對於外部調用的人來說,只需要傳入建造者和建造工具,對於內部是如何建造成成品的,調用者無需關心。

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

2.UML圖

Java Builder Pattern建造者模式详解及实例

3.代碼

public interface Builder { 
   void buildPartA(); 
   void buildPartB(); 
   void buildPartC(); 
 
   Product getResult(); 
 } 
 
 //具体建造工具
 public class ConcreteBuilder implements Builder { 
   Part partA, partB, partC; 
 
   public void buildPartA() {
     //这里是具体如何构建partA的代码
   }; 
   public void buildPartB() { 
     //这里是具体如何构建partB的代码
   }; 
    public void buildPartC() { 
     //这里是具体如何构建partB的代码
   }; 
    public Product getResult() { 
     //返回最后组装成品结果
   }; 
 }
 
 //建造者
 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 { }

    以下是調用builder的方法:代碼

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

    以下是調用builder的方法:應用場景

在Java的應用程式中JavaMail使用到了該模式。

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

更多Java Builder Pattern建造者模式詳解及實例相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn