builder模式

设计模式的实质是面向接口的编程;而面向接口可以使得接口的调用者独立于接口的具体实现细节。

因为实现细节可以有多种多样,通过接口的使用,我们就可以把这些实现的变换封装起来,成为一个可替换的模块。

在builder模式下,有以下几类角色:

Director, AbstractBuilder, ConcreteBuider1, ConcreteBuiler2,..., Product= { part1, part2,...,}

要实现封装变化点,就要现分析设计中那些是需要能灵活变化的,以提高程序的灵活性和扩展性,而哪些又是固定不变的。


具体来说,在Builder模式中,

Director对一件产品的需要构造的流程是不变的。

注意点:

1:Builder模式强调的是对某一件特定产品的构造,而不是多种产品。

2:这一特定产品是有一系列部件所组成的一个复杂对象,

3:变化点:各个部件的具体细节是各不相同的,但他们具有公共的接口;

4:固定点:各个部件的装配过程、顺序、关系是相对固定的,但具体针对某一特定部件的装配的方式方法是不一样的(所以,才会对应于不同的Builder)


所以:

1:director只应该拥有AbstractBuilder,以适应装配方法或装配对象的变化

2:AbstractBuilder也只拥有Product的接口,以适应不同产品的需要

3:Product 也只拥有部件Part的接口,以适应不同部件的需要。

(这里,也用到了桥接模式)


注意:在获取足够的设计上的灵活性的同时,也会付出项目变复杂的代价,所以,要注意权衡。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值