本站不再更新,歡迎光臨 java開發技術網
          隨筆-230  評論-230  文章-8  trackbacks-0

          構建模式的定義:
          將一個復雜的對象構建與它的表示分離開來,使用樣的構建過程可以創建不同的表示。
          Builder 模式是一步一步創建一個復雜的對象,它充許用戶通過指定復雜對象類型和內容就可以構建它們。用戶不需知道其內部細節。Builder非常類似操象工廠模式,只有在使用中才能區別開來。一個使用例子:
          package com.pdw.pattern;
          ?
          /*
          ?* 小對象的創建接口
          ?*/
          interface PartA{
          ?public void builderA();
          ?public void outPartAInfo();
          }
          interface PartB{
          ?public void builderB();
          }
          /*
          ?* 大對象創建接口
          ?*/
          interface Builder{
          ?void buildPartA();
          ?void buildPartB();
          ?Produce getResult();
          }

          /*
          ?* 產品接口
          ?*/
          interface Produce{
          ?public void OutProduceInfo();
          }

          /*
          ?* 構建部件
          ?*/
          class Director{
          ?private Builder builder;
          ?
          ?public Director(Builder vbuilder){
          ??this.builder=vbuilder;
          ?}
          ?
          ?public void construct(){
          ??builder.buildPartA();
          ??builder.buildPartB();
          ?}
          ?
          }
          /*
          ?* 部件實現類
          ?*/
          class PartAImpl implements PartA{

          ?public void builderA() {
          ??// TODO Auto-generated method stub
          ??System.out.print("PartA組裝完成...");
          ?}

          ?public void outPartAInfo() {
          ??// TODO Auto-generated method stub
          ??System.out.println("PartA 信息。。。 ");
          ?}
          ?
          }
          class PartBImpl implements PartB{

          ?public void builderB() {
          ??// TODO Auto-generated method stub
          ??System.out.println("構造部件B完成....");
          ?}
          ?
          }
          class ProduceImpl implements Produce{

          ?private PartA pa;
          ?private PartB pb;
          ?private ProduceImpl(){}

          ?public? ProduceImpl(PartA pa,PartB pb){
          ??this.pa=pa;
          ??this.pb=pb;
          ?}
          ?public void OutProduceInfo() {
          ??// TODO Auto-generated method stub
          ??pa.builderA();
          ??pb.builderB();
          ??pa.outPartAInfo();
          ??System.out.println("這里輸入了產品信息,當然產品還有很多功能方法沒寫呵");
          ?}
          ?
          }
          class Cbuilder implements Builder{
          ?PartA pa;
          ?PartB pb;
          ?public void buildPartA() {
          ??pa=new PartAImpl(); //具體子部件實現代碼
          ??
          ?}

          ?public void buildPartB() {
          ??
          ??pb=new PartBImpl();
          ?}

          ?public Produce getResult() {
          ??ProduceImpl pi=new ProduceImpl(pa,pb);
          ??return pi;
          ?}
          ?
          }

          ?


          public class BuilderImpl {

          ?
          ?
          ?/**
          ? * @param args
          ? */
          ?public static void main(String[] args) {
          ??// TODO Auto-generated method stub
          ??Cbuilder builder=new Cbuilder();
          ??Director d=new Director(builder);
          ??d.construct();
          ??Produce p=builder.getResult();
          ??p.OutProduceInfo();
          ?}

          }

          posted on 2006-06-29 22:52 有貓相伴的日子 閱讀(2265) 評論(0)  編輯  收藏 所屬分類: Patterns
          本站不再更新,歡迎光臨 java開發技術網
          主站蜘蛛池模板: 东乡| 鄄城县| 健康| 泸水县| 汉中市| 益阳市| 建水县| 云林县| 邳州市| 兴仁县| 板桥市| 将乐县| 界首市| 铜山县| 扎兰屯市| 枞阳县| 中阳县| 马边| 彭山县| 泗水县| 嵊州市| 开鲁县| 易门县| 望奎县| 平塘县| 晋中市| 信阳市| 吴桥县| 三台县| 大同县| 峡江县| 尼玛县| 恩施市| 会泽县| 和静县| 顺义区| 长兴县| 兰溪市| 勃利县| 汝城县| 淮阳县|