public interface Builder { public void buildPart1(); public void buildPart2(); public Product retrieveResult(); }
public class Product { /** * 瀹氫箟涓�浜涘叧浜庝骇鍝佺殑鎿嶄綔 */ private String part1; private String part2; public String getPart1() { return part1; } public void setPart1(String part1) { this.part1 = part1; } public String getPart2() { return part2; } public void setPart2(String part2) { this.part2 = part2; } }
public class ConcreteBuilder implements Builder { private Product product = new Product(); /** * 产品零件建造方法1 */ @Override public void buildPart1() { // 构建产品的第一个零件 product.setPart1("编号:9527"); } /** * 产品零件建造方法2 */ @Override public void buildPart2() { // 构建产品的第二个零件 product.setPart2("名称:XXX"); } /** * 产品返还方法 */ @Override public Product retrieveResult() { return product; } }
public class Director { /** * 持有当前须要使用的建造器对象 */ private Builder builder; /** * 构造方法,传入建造器对象 * * @param builder * 建造器对象 */ public Director(Builder builder) { this.builder = builder; } /** * 产品构造方法,负责调用各个零件建造方法 */ public void construct() { builder.buildPart1(); builder.buildPart2(); } }
public class Client { public static void main(String[] args) { Builder builder = new ConcreteBuilder(); Director director = new Director(builder); director.construct(); Product product = builder.retrieveResult(); System.out.println(product.getPart1()); System.out.println(product.getPart2()); } }
学习设计模式强烈推荐的博客:java_my_lifejava
代码地址:lennongit