设计模式101

81 阅读2分钟

主线

3大特性 - 面向对象三大特性

  • 封装:隐藏内部实现
  • 继承:复用现在代码
  • 多态:改写对象行为

5大原则 - SOLID原则

image.png

单一责任原则

  • 定义:一个类只应承担一种责任
  • 让一个类只做一件事。如果需要承担更多的工作,那么分解这个类。

开放封闭原则

  • 定义:实体应该对拓展是开放的,对修改是封闭的
  • 类应该无需修改类本身但却容易拓展
  • 例子:计算不同形状图形的面积

里氏替换原则

  • 定义:一个对象在其出现的任何地方,都可以用子类实例做替换
  • 当子类可以在任意地方替换基类且软件功能不受影响时,不会导致程序的错误
  • 例子:多个数据源(SQL与NoSql)获取用户信息

接口分离原则

  • 定义:多个专门接口比使用单一的总体接口要好
  • 客户不应被强迫依赖它不使用的方法。即,一个类实现的接口中,包含了它不需要的方法。将接口拆分成更小和更具体的接口,有助于解藕,从而更容易重构与更改。
  • 例子:计算面积和计算体积的接口,立方体适用这两个接口,图形使用面积接口

一来倒置原则

  • 定义:

    • 高层次的模块不应依赖低层次的模块,他们都应该依赖于抽象。
    • 抽象不应依赖于具体实现,具体实现应依赖抽象。
  • 依赖倒置是实现开闭原则的方法

  • 例子

  • 拓展:IOC 和 DI

6种关系 - 类的关系

image.png

23种模式 - GOF核心设计模式

image.png

image.png

什么是设计模式

每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。

一个模式的四要素

  • 模式名称:帮助记忆的名字
  • 问题:描述应该在何时使用模式,要解决什么问题
  • 解决方案:如何去做,设计有哪些组成,相互关系与各自职责
  • 效果:用了这个设计模式之后有啥效果