00-绪论
参考资料:
一、设计模式简介
设计模式是一组用于解决特定类型软件设计问题的解决方案。它们提供了一种抽象的方式来表达应用程序中常见问题的解决方案,帮助开发者更有效地解决问题,提高开发效率,降低开发成本,提高代码质量和可维护性,以及更好地管理和理解复杂的系统。
二、设计模式的六大原则
- 开闭原则(Open Close Principle)
- 实体应该对扩展开放,对修改关闭。
- 应用时注意点:充分利用抽象类和接口、多态等特性,将可变部分封装起来,提高系统的灵活性和可维护性。
- 单一职责原则(Single Responsibility Principle)
- 一个类应该只负责一项职责,不要存在多于一个的非本职责原因引起类的变更。
- 应用时注意点:在设计时尽量把类的职责划分清楚,把功能模块化,提高系统的灵活性和可维护性。
- 里氏替换原则(Liskov Substitution Principle)
- 任何基类可以出现的地方,子类一定可以出现。
- 应用时注意点:在设计时应让父类和子类之间有一个共同的抽象层,以便子类可以重写父类的抽象方法,并在子类中实现这些抽象方法。
- 依赖倒置原则(Dependency Inversion Principle)
- 面向接口编程,依赖于抽象而不依赖于具体。
- 应用时注意点:在设计时以抽象为基础,尽量将细节层次降低,使系统可以更灵活地应对变化。
- 接口隔离原则(Interface Segregation Principle)
- 每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。
- 应用时注意点:把接口进行分解,使用多个小接口,以便更好地实现功能的模块化管理,提高系统的灵活性和可维护性。
- 迪米特法则(Law of Demeter)
- 一个类对自己依赖的类知道的越少越好。
- 应用时注意点:尽量减少类与类之间的耦合,提高系统的灵活性和可维护性。
- 合成复用原则(Composite Reuse Principle)
- 尽量使用组合/聚合的方式,而不是使用继承关系来达到复用的目的。
- 应用时注意点:尽量使用组合/聚合的方式,使用继承可能带来的耦合性太强,从而影响系统的灵活性和可维护性。
三、设计模式的分类
设计模式分为三大类:
- 创建型设计模式
- 工厂方法设计模式
- 抽象工厂设计模式
- 单例设计模式
- 建造者设计模式
- 原型设计模式
- 结构型设计模式
- 适配器设计模式
- 装饰器设计模式
- 代理设计模式
- 外观设计模式
- 桥接设计模式
- 组合设计模式
- 享元设计模式
- 行为型设计模式
- 策略设计模式
- 模板方法设计模式
- 观察者设计模式
- 迭代子设计模式
- 责任链设计模式
- 命令设计模式
- 备忘录设计模式
- 状态设计模式
- 访问者设计模式
- 中介者设计模式
- 解释器设计模式