1.产品类
1.1产品的统一接口
/**
* @Desc:产品的接口
* @author zy
* @date 2016年6月21日下午4:40:33
*/
public interface Product {
/**
* @Desc:获取具体的产品
* @author:zy
* @version: 2016年6月21日 下午5:00:37
*/
public void getDetailProduct();
}
1.2 A产品和B产品
public class A implements Product{
@Override
public void getDetailProduct() {
System.out.println("get a product");
}
}
public class B implements Product{
@Override
public void getDetailProduct() {
System.out.println("get b product");
}
}
2.建造者类
public class Builder {
private List<Product> list = new ArrayList<Product>();
public void addA(int count){
for(int i=0 ; i < count ; i++){
list.add(new A());
}
}
public void adddB(int count){
for(int i=0 ; i< count ; i++){
list.add(new B());
}
}
}
3.测试
/**
* 建造者模式demo
* 使用环境:很多功能集成到一个类里面,创造比较复杂的实例,比如,一个游戏角色,包含脸庞、上半身、下半身、武器等的组件生成
* @author zy
*
*/
public class M {
public static void main(String[] args) {
Builder builder = new Builder();
builder.addA(10);
builder.adddB(10);
}
}
tips:
建造者模式,主要面对复杂对象的生成,使调用者不需要关心对象的生成,只专注调用即可
Java的应用中JavaMail使用到了该模式