设计模式学习(创建型模式)—建造模式(Builder)

建造模式(Builder) 

一个对象的内部有很多部件组成,在建造的过程中分割进行建造。可简化为模版方法模式.


[java]  view plain copy
  1. public class TestBuilder {   
  2.   
  3. public static void main(String[] args) {   
  4.   
  5. Builder b1=new BuilderImpl1(); 
  6. Builder b2=new BuilderImpl2();   
  7.   
  8.   
  9. Director d=new Director();   
  10. d.construct(b1);//指挥用BuilderImpl1来建造
  11. d.construct(b2);//指挥用BuilderImpl2来建造
  12. Product p1=b1.createProduct();   
  13.  Product p2=b2.createProduct(); 
  14. }  
  15.   
  16.   
  17.   
  18. }  
  19.   //建造的接口
  20. interface Builder{   
  21.   //方法1
  22. void buildPart1();   
  23.    //方法2
  24. void buildPart2();   
  25.    //方法3
  26. void buildPart3();   
  27.    //方法4
  28. Product getProduct();   
  29.   
  30. }   
  31.   //实现了建造的接口,第一种建造方式
  32. class BuilderImpl1 implements Builder{  
  33. private ProductProduct p=new Product();
  34.    //方法1
  35. public void buildPart1() {   //建造具体部件a
  36.   
  37. System.out.println("create part1");  
  38.    p.add("添加a部件");
  39.  }  
  40.    //方法2
  41. public void buildPart2() {   //建造具体部件b
  42.   
  43. System.out.println("create part2");  
  44.    p.add("添加b部件");
  45. }  
  46.    //方法3
  47. public void buildPart3() {   //建造具体部件c
  48.   
  49. System.out.println("create part3");   
  50.    p.add("添加c部件");
  51. }  
  52.    //方法4
  53. public Product getProduct() {   
  54.   
  55. return p;   
  56. }  
  57. }  
    1.  //实现了建造的接口,第二种建造方式
    2. class BuilderImpl2 implements Builder{  
    3. private ProductProduct p=new Product();
    4.    //方法1
    5. public void buildPart1() {   //建造具体部件a
    6.   
    7. System.out.println("create part1");  
    8.    p.add("添加x部件");
    9.  }  
    10.    //方法2
    11. public void buildPart2() {   //建造具体部件b
    12.   
    13. System.out.println("create part2");  
    14.    p.add("添加y部件");
    15. }  
    16.    //方法3
    17. public void buildPart3() {   //建造具体部件c
    18.   
    19. System.out.println("create part3");   
    20.    p.add("添加z部件");
    21. }  
    22.    //方法4
    23. public Product getProduct() {   
    24.   
    25. return p;   
    26. }  
    27. }  

  58. //Director类
  59. class Director{   
  60.    
  61. public construct(Builder b){  //用来指挥建造过程
  62.  b.buildPart1(); b.buildPart2();
  63.   b.buildPart3(); 
  64. }   
  65.  
  66.  }   
  67.   
  68. class Product{
  69. list<String> part=newarraylist<String>();
  70. public void add(String parts){
  71.   part.add(parts);
  72. }   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值