建造者模式
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();
- }
- 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使用到了该模式