设计模式纵谈4-Builder

3.Builder生成器(创建型模式)
Builder模式的缘起

.假设创建游戏中的一个房屋House设施,该House有几个部分组成,且
各部分富于变化。

.如果使用最直观的设计方法,每一个房屋部分的变化,都
将导致房屋构建的重新修正。。。。

动机 motivation
在软件系统中,有时候面临着 一个复杂对象 的创建工作,其通常由各个部分的子对象
用一定的算法构成,由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化
但是将它们组合在一起的算法却相对稳定。   

如何应对这种变化?如何提供一种 封装机制 来隔离出
复杂对象的各个部分的变化,从而保持系统中的稳定构建算法不随着需求改变而改变?


(修改某一个部分而改变某一部分的思考)

Intent
将一个复杂对象的构造与其表示相分离,使得同样的构建过程可以
创建不同的表示。

不同的表示就是变化

Structure

Director (客户程序)
Builder
ConcreteBuilder
Product

UML类图

协作图 Collaborations

系统设计师,并不是设计到每个具体类的实现,而是类
之间的相互交互和接口.

Builder模式的几个要点
.Builder模式主要用于 分步骤构建一个复杂的对象。而这其中 分步骤是一个稳定的算法,而
复杂对象的各个部分则经常变化。

.变化点在哪里,封装哪里---Builder模式主要在于应对 复杂对象各个部分 的频繁需求变动。其缺点在于难以
应对 分步骤构建算法的 需求变动。

.Abstract Factory模式解决 系列对象 的需求变化,Builder模式解决 对象
部分 的需求变化。Builder模式通常和Composisite模式组合使用。


如果软件需求永远是不变化的或者需求全部都是变化的,也就没有必要
使用设计模式。

所有的设计模式 都不是捕获变化,封装变化,隔离变化.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tof21

支持原创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值