构建模式的定义:
将一个复杂的对象构建与它的表示分离开来,使用样的构建过程可以创建不同的表示。
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
有猫相伴的日子 阅读(2246)
评论(0) 编辑 收藏 所属分类:
Patterns