ITPub博客

首页 > 应用开发 > Java > 建造者模式

建造者模式

Java 作者:壹頁書 时间:2017-03-29 17:39:45 0 删除 编辑
http://www.cnblogs.com/java-my-life/archive/2012/04/07/2433939.html

http://alicharles.com/article/jdk-builder-pattern/



  1. public class Test {  
  2.   
  3.     public static void main(String[] args) {  
  4.         Builder builder = new ConcreteBuilder();  
  5.         Director director = new Director(builder);  
  6.         director.construct();  
  7.         Product product = builder.retrieveResult();  
  8.           
  9.         System.out.println(product.getPart1());  
  10.         System.out.println(product.getPart2());  
  11.   
  12.     }  
  13. }  
  14.   
  15. class Product {  
  16.     /** 
  17.      * 定义一些关于产品的操作 
  18.      */  
  19.     private String part1;  
  20.     private String part2;  
  21.   
  22.     public String getPart1() {  
  23.         return part1;  
  24.     }  
  25.   
  26.     public void setPart1(String part1) {  
  27.         this.part1 = part1;  
  28.     }  
  29.   
  30.     public String getPart2() {  
  31.         return part2;  
  32.     }  
  33.   
  34.     public void setPart2(String part2) {  
  35.         this.part2 = part2;  
  36.     }  
  37. }  
  38.   
  39. interface Builder {  
  40.     public void buildPart1();  
  41.   
  42.     public void buildPart2();  
  43.   
  44.     public Product retrieveResult();  
  45. }  
  46.   
  47. class ConcreteBuilder implements Builder {  
  48.   
  49.     private Product product = new Product();  
  50.   
  51.     /** 
  52.      * 产品零件建造方法1 
  53.      */  
  54.     @Override  
  55.     public void buildPart1() {  
  56.         // 构建产品的第一个零件  
  57.   
  58.         product.setPart1("编号:9527");  
  59.     }  
  60.   
  61.     /** 
  62.      * 产品零件建造方法2 
  63.      */  
  64.     @Override  
  65.     public void buildPart2() {  
  66.         // 构建产品的第二个零件  
  67.         product.setPart2("名称:XXX");  
  68.     }  
  69.   
  70.     /** 
  71.      * 产品返还方法 
  72.      */  
  73.     @Override  
  74.     public Product retrieveResult() {  
  75.         return product;  
  76.     }  
  77.   
  78. }  
  79.   
  80. class Director {  
  81.     /** 
  82.      * 持有当前需要使用的建造器对象 
  83.      */  
  84.     private Builder builder;  
  85.   
  86.     /** 
  87.      * 构造方法,传入建造器对象 
  88.      *  
  89.      * @param builder 
  90.      *            建造器对象 
  91.      */  
  92.     public Director(Builder builder) {  
  93.         this.builder = builder;  
  94.     }  
  95.   
  96.     /** 
  97.      * 产品构造方法,负责调用各个零件建造方法 
  98.      */  
  99.     public void construct() {  
  100.         builder.buildPart1();  
  101.         builder.buildPart2();  
  102.     }  
  103. } 




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-2136285/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 享元模式
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    620
  • 访问量
    6339871