设计模式总结

主要目标

管理变化,提供复用!

两个手段

  1. 分解
    把具体的功能先拆分。
  2. 抽象
    把公共的部分提取出来形成抽象的部分,统一处理。

九大原则

  1. 依赖倒置(DIP)
  2. 开闭原则(OCP)
  3. 单一职责(SRP)
  4. 里氏替换(LSP)
  5. 接口隔离(ISP)
  6. 组合复用
  7. 迪米特法则
  8. 封装变化点
  9. 面向接口编程

重构技法

  1. 静态 -> 动态
  2. 早绑定 -> 晚绑定
  3. 继承 -> 组合
  4. 编译时依赖 -> 运行时依赖
  5. 紧耦合 -> 松耦合

封装变化角度对模式分类

  1. 组件协作
  • Template Method
  • Strategy
  • Observer/Event
  1. 单一职责
  • Decorator
  • Bridge
  1. 对象创建
  • Factory Method
  • Abstract Factory
  • Prototype
  • Builder
  1. 对象性能
  • Singleton
  • Flyweight
  1. 接口隔离
  • Facade
  • Proxy
  • Mediator
  • Adapter
  1. 状态变化
  • State
  • Memento
  1. 数据结构
  • Composite
  • Chain of Responsibility
  • Iterator
  1. 行为变化
  • Command
  • Visitor
  1. 领域问题
  • Interpreter

对比所有模式类图

发现核心就是多态,通过接口、抽象类达到运行时绑定。

经验之谈

  1. 不要为了模式而模式
  2. 关注抽象类&接口
  3. 理清变化点和稳定点
  4. 审视依赖关系
  5. 要有Framework和Application的区隔思维
  6. 良好的设计是演化的结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

融极

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值