建造者模式(builder)構建模式

          定義
              將一個對象的復雜構建過程和表示分離開
          含義
              就是將對象的復雜的構建過程分離開,已達到解耦過程和部件。
          為何試用
              例如你需要加工手機,如果每個型號的手機都有一個加工組裝廠,會不會感覺很多余呀。你只需要建造一個組裝廠即可,安裝的過程嗎肯定都是一樣的。所以你給我什么型號的手機部件我就給你組裝什么型號的手機。這樣將手機的組裝和手機的部件有效的分離開減少耦合。而且有利于維護,比如說有一天手機天線不需要外置了,都已經內置了。那只要告訴組裝廠減去裝外置天線的哪一步就夠了。

          例子:

          public interface Builder {

            //創建部件A 
            void buildPartA();
            //創建部件B
            void buildPartB();

            //返回最后組裝成品結果
            //成品的組裝過程不在這里進行,而是轉移到下面的Director類中進行.
            //從而實現了解耦過程部件
            Product getResult();

          }

          public class Director {

            private Builder builder;

            public Director( Builder builder ) {
              this.builder = builder;
            }
            // 將部件partA partB最后組成復雜對象
            public void construct() {
              builder.buildPartA();
              builder.buildPartB();

            }

          }

          public class ConcreteBuilder implements Builder {

            Part partA, partB;
            public void buildPartA() {
              //這里是具體如何構建partA的代碼

            };
            public void buildPartB() {
              //這里是具體如何構建partB的代碼
            };
             public Product getResult() {
              //返回最后組裝成品結果
            };

          }

          我們看看如何調用Builder模式:
          ConcreteBuilder builder = new ConcreteBuilder();
          Director director = new Director( builder );
          director.construct();
          Product product = builder.getResult();

          posted on 2012-03-15 22:51 海峰 閱讀(109) 評論(0)  編輯  收藏 所屬分類: 設計模式

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 赤水市| 两当县| 张家川| 河东区| 宜黄县| 皋兰县| 聊城市| 宝丰县| 辽阳县| 宁南县| 循化| 仁寿县| 忻州市| 桦川县| 台州市| 沅江市| 西峡县| 宁安市| 鄂托克前旗| 保德县| 和政县| 东兰县| 江都市| 辽宁省| 亚东县| 花垣县| 丰镇市| 泸州市| 新民市| 凯里市| 淮安市| 南川市| 正定县| 珠海市| 安多县| 育儿| 乾安县| 莱阳市| 宁都县| 辉县市| 茂名市|