本站不再更新,欢迎光临 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 有猫相伴的日子 阅读(2247) 评论(0)  编辑  收藏 所属分类: Patterns

只有注册用户登录后才能发表评论。


网站导航:
 
本站不再更新,欢迎光临 java开发技术网