设计模式(一):《Head First 设计模式》大纲篇

前言

最近打算重新学习下设计模式,用了几天把几位大佬的《Head First 设计模式》粗读了一遍,打算重刷第二遍进行精读,顺便整理下笔记加深理解。

以前读设计模式的时候,实践经验比较少,所以理解不是很透彻。这次重读,结合自己的实践经验,给人的启发性就大了很多。

自我反思、总结才是进步的最佳方式,你得不断调整方向才能让自己向前冲的姿势更加优美。(--致自己)

大佬箴言

  • 如果没有类实现某个接口,那么此接口的存在就没有意义
  • 在我们的设计中,应该允许行为可以被扩展,而无需修改现有的代码
  • 在OO设计的过程中,折衷一直是免不了的
  • 模式是用来解决一个经常性重复发生的设计问题(模式必须应用于一个重复出现的问题)
  • 模式不是法律或准则,模式只是指导方针
  • 设计时,尽可能地用最简单的方式解决问题
  • 系统已经非常复杂了,而且并不需要预留任何弹性的时候,就不要使用模式
  • 过度使用设计模式可能导致代码被过度工程化,模式是工具而不是规划,需要被适当地调整以符合你的需求
  • 在设计前期使用模式常常导致过度工程

学习知识,绝对禁止的一件事就是照搬,学了设计模式也只是多了一些解决问题的指导思想,是一把钥匙,而不是一种绝对的解决方案。

设计原则

  • 封装变化
  • 多用组合,少用继承
  • 针对接口编程,不针对实现编程
  • 为交互对象之间的松耦合设计而努力
  • 开闭原则:类应该对扩展开放,对修改关闭
  • 依赖倒置原则:依赖抽象,不依赖具体类
  • 最少知识原则:只和朋友交谈(减少对象之间的交互)
  • 好莱坞原则:别找我,我会找你
  • 单一职责原则:类应该只有一个改变的理由

全书大纲

此处是整理的一个思维导图,还不是很完善,持续更新中……(貌似不支持文件上传?)

  • 观察者模式
  • 装饰者模式
  • 工厂模式
  • 单件模式
  • 命令模式
  • 适配器与外观模式
  • 模板方法模式
  • 迭代与组合器模式
  • 状态模式
  • 策略模式
  • 代理模式
  • 其他模式


    设计模式(一):《Head First 设计模式》大纲篇_第1张图片
    Head First 设计模式.jpg

你可能感兴趣的:(设计模式(一):《Head First 设计模式》大纲篇)