设计模式的一些理解

转载注明出处http://blog.csdn.net/wanghorse


1. 把变化的部分都用组合、聚合或依赖实现,不变的部分用继承实现

     Visitor模式, 将经常删减的操作中继承体系中提炼出来,成为操作类,每个类中的操作对应原有的不变的继承体系
     Strategy模式,将可扩充的算法使用依赖实现;接口抽闲出来
     Observer模式,将观察者放在被观察者的依赖列表中;不变的update部分使用继承实现,各个观察者各自实现update接口
     Interpreter模式,将可变的解释算法使用依赖来应用,不变的算法接口使用继承实现
     Command模式,将可变的Command类型用依赖实现,不变的Command接口用继承实现

2. 提炼公共的部分
     比如模板方法,将公共的流程在父类中体现,具体各步骤在子类中实现
     State模式,将公共的接口提炼出来
     Memento模式,针对每个对象类,都有一个对应的记忆类,每个类实现各自的记忆类;再有统一的算法和管理器进行管理
     Mediator模式,由他统一调度所有的下面的接口,接口由中介类封装
     Iterator模式,将遍历接口和算法抽象出来
     Fyiweight模式,将公共的部分放在基类中
     Composite模式,将组合和递归在基类中实现
     Singleton模式,将判断唯一放在static中实现

3. 在运行中可变
     如State模式,相比原有的switch/case以数组map模式,此模式能够在运行时进行变更
     如Strategy模式,通过依赖,可在运行中变更策略
     decorator模式,在运行中决定新增功能(相对Proxy模式),通过继承来扩展不同的装饰

4. 解耦
     Mediator模式,各个子模块之间无交互了, 多对多变成了1对多的模式; CC中的Task有中介者的意思
     Observer和Subject解耦, 即Subject无需关心Observer是如何实现的,是再做什么
     Iterator模式,将接口和遍历算法解耦
     Command模式,将调用者和接收者解耦
     Responsibility chain模式,将每一个执行的对象解耦,不需要关注最终的执行效果
     Bridge模式,将接口扩展和实现扩展解耦;实现从其接口中解耦出来

5. 少改动进行扩充
     Proxy模式, 接口保持不变,不变更原有类的情况下, 在原有的基础上,扩充新的功能
     Adapter模式, 将现有系统和第三方系统很好的整合在一起,现有系统没做改动,第三方系统也没做改动

6. 降低使用难度
     Facade模式,将多个对象的接口在一个对象中封装好,并提供出去,即调用者只和一个对象打交道
     Mediator模式,将多个对象的交互在一个对象中管理,调用者只需要和Mediator打交道
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值