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

创建者模式和工厂模式的区别是:创建者模式关注整体和部分的组建,而工厂模式关注对象产生和创建的分离。
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值