建造者模式

来源:互联网 发布:群里人一键加好友软件 编辑:程序博客网 时间:2024/05/22 15:04

1.产品类

1.1产品的统一接口

[java] view plain copy
  1. /** 
  2.  * @Desc:产品的接口 
  3.  * @author zy 
  4.  * @date 2016年6月21日下午4:40:33 
  5.  */  
  6. public interface Product {  
  7.       
  8.     /** 
  9.      * @Desc:获取具体的产品 
  10.      * @author:zy 
  11.      * @version: 2016年6月21日 下午5:00:37 
  12.      */  
  13.     public void getDetailProduct();  
  14.       
  15. }  
1.2 A产品和B产品

[java] view plain copy
  1. public class A implements Product{  
  2.   
  3.     @Override  
  4.     public void getDetailProduct() {  
  5.         System.out.println("get a product");  
  6.           
  7.     }  
  8.   
  9. }  
  10.   
  11.   
  12.   
  13. public class B implements Product{  
  14.   
  15.     @Override  
  16.     public void getDetailProduct() {  
  17.         System.out.println("get b product");  
  18.           
  19.     }  
  20.       
  21. }  

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使用到了该模式

0 0
原创粉丝点击