00-绪论

参考资料:

一、设计模式简介

设计模式是一组用于解决特定类型软件设计问题的解决方案。它们提供了一种抽象的方式来表达应用程序中常见问题的解决方案,帮助开发者更有效地解决问题,提高开发效率,降低开发成本,提高代码质量和可维护性,以及更好地管理和理解复杂的系统。

二、设计模式的六大原则

  • 开闭原则(Open Close Principle)
    • 实体应该对扩展开放,对修改关闭。
    • 应用时注意点:充分利用抽象类和接口、多态等特性,将可变部分封装起来,提高系统的灵活性和可维护性。
  • 单一职责原则(Single Responsibility Principle)
    • 一个类应该只负责一项职责,不要存在多于一个的非本职责原因引起类的变更。
    • 应用时注意点:在设计时尽量把类的职责划分清楚,把功能模块化,提高系统的灵活性和可维护性。
  • 里氏替换原则(Liskov Substitution Principle)
    • 任何基类可以出现的地方,子类一定可以出现。
    • 应用时注意点:在设计时应让父类和子类之间有一个共同的抽象层,以便子类可以重写父类的抽象方法,并在子类中实现这些抽象方法。
  • 依赖倒置原则(Dependency Inversion Principle)
    • 面向接口编程,依赖于抽象而不依赖于具体。
    • 应用时注意点:在设计时以抽象为基础,尽量将细节层次降低,使系统可以更灵活地应对变化。
  • 接口隔离原则(Interface Segregation Principle)
    • 每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。
    • 应用时注意点:把接口进行分解,使用多个小接口,以便更好地实现功能的模块化管理,提高系统的灵活性和可维护性。
  • 迪米特法则(Law of Demeter)
    • 一个类对自己依赖的类知道的越少越好。
    • 应用时注意点:尽量减少类与类之间的耦合,提高系统的灵活性和可维护性。
  • 合成复用原则(Composite Reuse Principle)
    • 尽量使用组合/聚合的方式,而不是使用继承关系来达到复用的目的。
    • 应用时注意点:尽量使用组合/聚合的方式,使用继承可能带来的耦合性太强,从而影响系统的灵活性和可维护性。

三、设计模式的分类

设计模式分为三大类:

  • 创建型设计模式
    • 工厂方法设计模式
    • 抽象工厂设计模式
    • 单例设计模式
    • 建造者设计模式
    • 原型设计模式
  • 结构型设计模式
    • 适配器设计模式
    • 装饰器设计模式
    • 代理设计模式
    • 外观设计模式
    • 桥接设计模式
    • 组合设计模式
    • 享元设计模式
  • 行为型设计模式
    • 策略设计模式
    • 模板方法设计模式
    • 观察者设计模式
    • 迭代子设计模式
    • 责任链设计模式
    • 命令设计模式
    • 备忘录设计模式
    • 状态设计模式
    • 访问者设计模式
    • 中介者设计模式
    • 解释器设计模式