设计模式——建造者模式

2020-07-08

建造者模式

建造者模式中的角色

  1. 目标类(产品类)
    通常实现了模板方法模式,有模板方法和基本方法
  2. 抽象建造者
  3. 建造者
    实现抽象建造者定义的所有方法
  4. 导演类

建造者模式将复杂对象的构建逻辑从对象本身抽离了出来,这样能够简化复杂的对象。建造者关注目标类的构建过程,目标类关注合法实例的业务本身。在实例化目标类前,确保得到的是一个有效的对象,并且不会让构建逻辑出现在目标类本身。建造者构建类对象的过程通常是分步骤的。

建造者类一般有返回类型为目标类的方法,用于获取目标类实例,还有对目标类中的属性或方法的进行操作的方法,通常会在这种方法中调用目标类中相应的方法或相应属性的get/set方法

个人观点
建造者继承或实现抽象建造者,在要实现的方法中调用目标类中对应的方法。它们之间的关系与适配器模式中的目标类(目标接口)、适配器、现有类的关系很像,抽象建造者对应适配器模式中的目标类(目标接口),建造者对应适配器,建造者模式中的目标类对应适配器模式中的现有类。

部件或零件——目标类中的方法
装配——调用

使用场景

  1. 相同的方法,不同的执行顺序,产生不同的事件结果时,可以采用建造者模式
  2. 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可以使用该模式
  3. 目标类非常复杂,或者目标类中的方法调用顺序不同产生了不同的效能
  4. 在对象创建过程中会使用到系统中的一些其他对象,这些对象在目标对象的创建过程中不易得到时,也可以采用建造者模式封装该对象的创建过程。这种场景只能是一个补偿方法,因为一个对象不容易获得,而在设计阶段竟然没有发觉,而要通过创建者模式柔化创建过程,本身已经违反设计的最初目标

参考文献
《Java设计模式(第二版)》
《设计模式之禅》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值