Builder模式定義:
          將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。
          剛接觸到這個(gè)模式的時(shí)候,實(shí)在搞不明白它的意思,有什么用。于是,上網(wǎng)google了一圈,終于得到這個(gè)大家普遍認(rèn)可的解釋?zhuān)?br /> 建造模式是一步一步創(chuàng)建一個(gè)復(fù)雜的對(duì)象,它允許用戶(hù)可以只通過(guò)指定復(fù)雜對(duì)象的類(lèi)型和內(nèi)容就可以構(gòu)建它們,用戶(hù)不知道內(nèi)部的具體構(gòu)建細(xì)節(jié)。
          下面舉一個(gè)例子來(lái)說(shuō)明這個(gè)模式的使用,代碼如下:
          import java.util.ArrayList;

          interface Builder{
           public void buildPartA();
           public void buildPartB();
           public void buildPartC();
           public Product getProduct();
          }
          class Product{
           
           private ArrayList<String> parts=new ArrayList<String>();
           public void add(String part){
            parts.add(part);
           }
           public void show(){
            System.out.println("Product有以下幾部分構(gòu)成:");
            for(String s:parts){
             System.out.println(s);
            }
           }
          }

          class Worker implements Builder{
              private Product product;
             
           public void buildPartA() {
            product=new Product();
            product.add("A部分");
            
           }

           public void buildPartB() {
            product.add("B部分");
            
           }

           public void buildPartC(){
            product.add("C部分");
            
           }
           public Product getProduct(){
            return product;
           }
           
          }
          class Designer{
           public void order(Builder builder){
            builder.buildPartA();
            builder.buildPartB();
            builder.buildPartC();
           }
          }
          public class Test {

           public static void main(String[] args) {
            Designer designer=new Designer();
            Builder builder=new Worker();
            designer.order(builder);
            Product product =builder.getProduct();
            product.show();

           }
          }
          輸出結(jié)果如下:
          Product有以下幾部分構(gòu)成:
          A部分
          B部分
          C部分
          從這個(gè)例子我們可以看出Builder模式,是把建造對(duì)象的過(guò)程分成一部分一部分來(lái)完成的。
          小結(jié):Builder模式主要是為了將構(gòu)建復(fù)雜對(duì)象的過(guò)程和它的部件解耦。使得我們不用去關(guān)心每個(gè)部件是如何組裝的。

          posts - 146, comments - 143, trackbacks - 0, articles - 0

          Copyright © flustar

          主站蜘蛛池模板: 建瓯市| 油尖旺区| 湘乡市| 黔西县| 公安县| 沙河市| 衡阳市| 东丽区| 睢宁县| 连城县| 诸暨市| 安吉县| 微博| 仲巴县| 潢川县| 即墨市| 肇源县| 博客| 永兴县| 永安市| 泊头市| 株洲县| 罗源县| 罗城| 霞浦县| 东莞市| 秀山| 辽源市| 南澳县| 广河县| 望奎县| 罗江县| 秀山| 页游| 乌鲁木齐市| 宁陵县| 惠安县| 泰安市| 滨海县| 邳州市| 泾源县|