设计模式的思考

    1、Abstract Factory与Builder都是通过传入一个构造对象为client创建一个产品,但它们的区别在于:Abstract Factory中,client定义一个构造的框架,通过传入不同的Factory对象来创建不同的产品;而Builder模式中,Builder只负责创建一系列组件,但诸如产品的组件的复杂度或个数等特性,由client决定,即:client有多个用于构造产品的框架(接口),可以通过传入相同的Builder对象,来创建不同的产品。

    2、采用固定框架或算法的模式还有Template Method,与Abstract Factory的区别是:Template Method定义一个算法框架接口,其中可能调用到的某些具体实现会延迟到子类中实现,没有传参的过程。Template Method是位于“隐藏”与“多态”之间的一种中间的复用手段:它允许子类不完全或修改一部分的继承父类的某个接口。

    3、Command模式完全是一个回调函数的替代品。我们甚至都不要去实现那个execute接口,而改为重载()操作符,让它看起来就是一个回调函数。但好处是一个Command对象是有状态的,也可以根据这个状态延伸做出回溯的操作。

    4、State模式如此的重要,都不用多说。任何OOAD得到的设计,必然会得到一系列的具有不同状态的类,State模式负责这些类在不同状态间的原子转换,只是需要注意的是:类的某些状态间的区别,仅仅是几个属性的差别,这时引入枚举或Strategy模式可以减少继承深度所带来的风险。

    5、Factory Method去除那些让人看起来不太爽switch和dynamic_cast效果不错。谁的事谁自己知道,client只关注必需的信息,交互的对象是谁不是最重要的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值