美文网首页程序员
重学设计模式(一)之读《Head First 设计模式》

重学设计模式(一)之读《Head First 设计模式》

作者: LY丶Smile | 来源:发表于2018-12-14 19:54 被阅读3次

    前言

    最近重新学习了下设计模式,用了几天把几位大佬的《Head First 设计模式》读了一遍,整理了下读书笔记,作为设计模式学习的一个大纲,为持续学习做个指导。

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

    PS:此篇文章只是一个大纲

    大佬箴言

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

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

    设计原则

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

    全书大纲

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

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


      Head First 设计模式.jpg

    相关文章

      网友评论

        本文标题:重学设计模式(一)之读《Head First 设计模式》

        本文链接:https://www.haomeiwen.com/subject/gzhnhqtx.html