《设计模式的艺术》笔记——基础知识

最近看了刘伟写的《设计模式的艺术》,第一次具体的学习设计模式,整理了一下笔记。

设计模式:

是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并保证代码可靠性。

关键要素:

模式名称、问题、解决方案、效果。

分类:

  1. 创建型(Creational)——如何创建对象
  2. 结构型(Structural)——如何实现类或对象的组合
  3. 行为型(Behavioral)——类或对象怎样交互和分配指责

设计模式的作用:

  1. 避免做一些重复性的工作,有助于提高设计和开发效率。
  2. 方便开发人员之间进行沟通和交流,使得设计方案更加通俗易懂。
  3. 更好的重用一些已有的设计方案、功能模块甚至整个完整的软件系统。
  4. 有助于别人更快的理解系统。
  5. 有助于初学者更加深入的理解面向对象思想。

常用的面向对象涉及原则

  • 单一职责原则: 一个类只负责一个功能领域中的相应职责。
  • 开闭原则: 软件实体应对开放扩展,而对修改关闭。
  • 里氏代换原则: 所有引用基类对象的地方能够透明地使用其子类的对象。
  • 依赖倒转原则: 抽象不应该依赖于细节,细节应该依赖于抽象。
  • 接口隔离原则: 使用多个专门的接口,而不使用单一的总接口。
  • 合成复用原则: 尽量使用对象组合,而不是继承来达到复用的目的。
  • 迪米特法则: 一个软件实体应当尽可能少地与其他实体发生相互作用。

类之间的关系

  1. 关联关系

    • 双向关联

      designpattern1.jpg

    • 单向关联

      designpattern2.jpg

    • 自关联

      designpattern3.jpg

    • 多重性关联

      designpattern4.jpg

    • 聚合关系

      designpattern5.jpg

    • 组合关系

      designpattern6.jpg

  2. 依赖关系

    designpattern7.jpg

  3. 泛化关系

    designpattern8.jpg

  4. 接口与实现关系

    designpattern8.jpg