构建器模式

 *构建器模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类图如下:

 *product产品类:表示被构建器构建的复杂对象,包含多个部件。

1 //产品接口 示意性产品,所以没有任何方法
2 public interface Product{    
3 }

 *builder构建器接口:定义创建一个product对象所需要的各个部件的操作。

1 //构建器接口
2 public interface Builder{
3     public void builderPart1();
4     public void builderPart2();
5     public Product getResult();
6 }

*concretebuilder具体的构建器:实现各个部件的创建,并负责组装product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法。**具体的构建部件方法要由此角色来实现。

 1 //具体构建器
 2 public class ConcreteBuilder implements Builder{
 3     private Product resultProduct = new Product(){};//示意性产品这里用匿名对象表示
 4     @Override
 5     public Product getResult(){
 6         return resultProduct;
 7     }
 8     @Override
 9     public void builderPart1() {
10         //构建部件1具体方法
11     }    
12     @Override
13     public void builderPart2() {
14         //构建部件2具体方法
15     }    
16 }

 *director指导者:主要来使用builder接口,以一个统一的过程来构建所需要的product对象。**构建算法要由此角色来实现。

 1 //指导者
 2 public class Director{
 3     private Builder builder;
 4     //注入构建器对象
 5     public Director(Builder builder){
 6         this.builder = builder;
 7     }
 8     //指导构建器构建产品,这里实现构建步骤的算法(本例是按part1、part2顺序,实际场景中会复杂得多)
 9     public void construct(){
10         builder.builderPart1();
11         builder.builderPart2();
12     }
13     public Product getProduct(){
14         return builder.getResult();
15     }
16 }

客户端代码:

1 public class Client {
2     public static void main(String[] args) {
3         Builder builder = new ConcreteBuilder();
4         Director director = new Director(builder);
5         director.construct();
6         Product product = director.getProduct();
7     }
8 }

总结:

  构建器模式的本质就是分离整体构建算法和部件构造,使产品构建过程与具体产品表现松耦合。
    构建器模式主要功能是构建复杂产品,而且是细化的、分步骤的构建产品。这个构建过程是统一的、固定不变的,它把变化的过程放到了具体构建器里,只要实现不同的生成器,相同的构建过程就可以构建出的不同的产品。

转载于:https://www.cnblogs.com/ergou/p/6965010.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值