设计模式笔记-创建者模式

来源:互联网 发布:小站雅思 for mac 编辑:程序博客网 时间:2024/04/30 21:04
创建者模式和工厂模式的区别是:创建者模式关注整体和部分的组建,而工厂模式关注对象产生和创建的分离。
public interface Builder {        public void buildProductId();        public void buildProductName();        public Product getProduct();}public class ConcreteBuilder1 implements Builder {        private Product product = new Product();               public void buildProductId() {               product.setId(1);       }        public void buildProductName() {               product.setName( "product1");       }        public Product getProduct() {               return product ;       }}public class ConcreteBuilder2 implements Builder {        private Product product = new Product();               public void buildProductId() {               product.setId(2);       }        public void buildProductName() {               product.setName( "product2");       }        public Product getProduct() {               return product ;       }}public class Product {        private int id ;        private String name ;        public int getId() {               return id ;       }        public void setId(int id) {               this.id = id;       }        public String getName() {               return name ;       }        public void setName(String name) {               this.name = name;       }        public String toString() {               return "productId :" + this.id + " productName : " + this.name ;       }}public class Director {        private Builder builder ;        public Director(Builder builder) {               this.builder = builder;       }        public void buildProduct() {               builder.buildProductId();               builder.buildProductName();       }               public Product getResult() {               return builder .getProduct();       }}public class BuilderClient {         public static void main(String args[]) {              Builder builder = new ConcreteBuilder1();              Director director = new Director(builder);              director. buildProduct();              System. out.println(director.getResult());              Builder builder2 = new ConcreteBuilder2();              director = new Director(builder2);              director. buildProduct();              System. out.println(director.getResult());       }}





0 0