建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
建造者模式中,有4个角色
产品类:
package com.wanq.designmode.builder;
/**
* @author-WanQ
* @创建时间:2013-3-25 上午10:38:24
* @类说明:
* 产品类
*/
public class Product {
public void doSomething(){
// 独立业务处理
}
}
抽象建造者:
package com.wanq.designmode.builder;
/**
* @author-WanQ
* @创建时间:2013-3-25 上午10:39:19
* @类说明:
* 建造者抽象类
*/
public abstract class Builder {
// 设置不同顺序,生成不同的产品
public abstract void setPart();
// 建造茶农
public abstract Product buildProduct();
}
具体建造者:
package com.wanq.designmode.builder;
/**
* @author-WanQ
* @创建时间:2013-3-25 上午10:43:34
* @类说明:
* 产品建造者
*/
public class ProductBuilder extends Builder {
private Product product = new Product();
@Override
public void setPart() {
// TODO Auto-generated method stub
/**
* 产品类内的逻辑处理
*/
}
@Override
public Product buildProduct() {
// TODO Auto-generated method stub
return product;
}
}
导演类:
package com.wanq.designmode.builder;
/**
* @author-WanQ
* @创建时间:2013-3-25 上午10:45:35
* @类说明:
* 调用的类
*/
public class Director {
private Builder builder = new ProductBuilder();
// 构建不同的产品
public Product getAProduct(){
builder.setPart();
/**
* 设置不同的零件,生成不同的产品
*/
return builder.buildProduct();
}
}
运用场景:
package com.wanq.designmode.builder;
/**
* @author-WanQ
* @创建时间:2013-3-25 上午10:53:07
* @类说明:
*
*/
public class Client {
public static void main(String[] args){
Director director = new Director();
director.getAProduct();
}
}