设计模式---构建者模式

定义:Separate the construction of a complex object from its representation so that the same construction process can create different representations.(将一个复杂对象的构建与它的表示分 离,使得同样的构建过程可以创建不同的表示。)

 

 

 

类图看着复杂了,但还是比较简单,我们增加了一个Director类,负责按照指定的顺序 生产模型,其中方法说明如下:

         getABenzModel方法 组建出A型号的奔驰车辆模型,其过程为只有启动(start)、停止(stop)方法,其他的 引擎声音、喇叭都没有。 

        getBBenzModel方法 组建出B型号的奔驰车,其过程为先发动引擎(engine boom),然后启动,再然后停 车,没有喇叭。 

        getCBMWModel方法 组建出C型号的宝马车,其过程为先喇叭叫一下(alarm),然后启动,再然后是停车, 引擎不轰鸣。

        getDBMWModel方法 组建出D型号的宝马车,其过程就一个启动,然后一路跑到黑,永动机,没有停止方 法,没有喇叭,没有引擎轰鸣。        

 

 建造者模式的优点:

       封装性 使用建造者模式可以使客户端不必知道产品内部组成的细节,如例子中我们就不需要关 心每一个具体的模型内部是如何实现的,产生的对象类型就是CarModel。 

       建造者独立,容易扩展 BenzBuilder和BMWBuilder是相互独立的,对系统的扩展非常有利。           便于控制细节风险 由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任 何影响。

建造者的使用场景:

      相同的方法,不同的执行顺序,产生不同的事件结果时,可以采用建造者模式。

      多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可 以使用该模式。

       产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建 造者模式非常合适。 

        在对象创建过程中会使用到系统中的一些其他对象,这些对象在产品对象的创建过程 中不易得到时,也可以采用建造者模式封装该对象的创建过程。该种场景只能是一个补偿方 法,因为一个对象不容易获得,而在设计阶段竟然没有发觉,而要通过创建者模式柔化创建 过程,本身已经违反设计的最初目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值