1. 简介

1-1. 什么是设计模式

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。

1-2. 设计模式的目的

使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

1-3. 模式是什么

模式是指从生产经验和生活经验中经过抽象和升华提炼出来的核心知识体系。模式(Pattern)其实就是解决某一类问题的方法论。

2. 模式的分类

2-1. 创建型-研究高效的创建对象

  1. 单例模式
  2. 抽象工厂模式
  3. 建造者模式
  4. 工厂模式
  5. 原型模式

2-2. 结构型模式-设计对象的结构和关系

  1. 适配器模式
  2. 桥接模式
  3. 装饰模式
  4. 组合模式
  5. 外观模式
  6. 享元模式
  7. 代理模式

2-3. 行为型模式-设计对象的行为

  1. 模板方法模式
  2. 命令模式
  3. 迭代器模式
  4. 观察者模式
  5. 中介者模式
  6. 备忘录模式
  7. 解释器模式
  8. 状态模式
  9. 策略模式
  10. 职责链模式
  11. 访问者模式

3. 设计模式的六大原则

减少耦合,增强复用性,降低代码的开发维护扩展成本

  1. 单一职责原则 SRP Single Responsibility Principle

    定义:就一个类而言,应该只有一个引起它变化的原因。
    即:一个方法只做一件事情。

  2. 开闭原则 OCP open closed principle

    一个软件实体如类、模块和函数应该对扩展开放,对修改关闭

  3. 里氏替换原则 LSP liskov substitution principle

    任何基类可以出现的地方,子类一定可以出现。通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能
    即:一个父类可以访问的接口,父类忙着其他事情,子类可以去访问。

  4. 迪米特原则(最小知道原则) LoD Law of Demeter

    定义:一个软件实体应当尽可能少地与其他实体发生相互作用
    即:一个接口和一个方法,传入的参数越少越好。降低耦合度的同时也会让复杂程度降低

  5. 依赖倒置原则 DIP Dependence Inversion Principle

    最常用的原则,依赖接口,不依赖方法,底层的东西不用了解,我们只需知道表现就可以。降低耦合度

  6. 接口隔离原则 ISP Interface Segregation Principle

    定义:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
    即:把大接口拆分小接口,不能一个接口全部实现增删改查

4. 开发时流程

优先降低复杂度,尽量降低耦合度

  1. 利用单一职责原则,开闭原则,里氏代换原则降低复杂度
  2. 通过迪米特法则减少耦合度
  3. 通过依赖倒置原则消除可以没有的耦合

__END__