
本站地址:http://www.bajiao123.com

设计模式----builder
构建模式的定义:
将一个复杂的对象构建与它的表示分离开来,使用样的构建过程可以创建不同的表示。
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();
?}
}
本站地址:http://www.bajiao123.com

