Skip to content

设计模式简介

认识设计模式

设计模式(Design pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的 高内聚低耦合

高内聚和低耦合

举例一个例子,比如有一个公司,各个部门各司其职,互不干涉。各个部门需要合作时通过专门的负责人进行对接。

在软件开发中也是一样的,一个功能模块应该只是关注一个功能,一个模块最好只实现一个功能。这个是内聚

模块与模块之间、系统与系统之间的交互,是不可避免的, 所以我们要尽量减少由于交互引起的单个模块无法独立使用或者无法移植的情况发生, 尽可能多的单独提供接口用于对外操作, 这个就是所谓的低耦合

设计模式的6大原则

1. 单一职责原则

  • 定义:一个类应该只有一个引起它变化的原因,即一个类只负责一个功能或一个职责。
  • 目的:降低类的复杂度,提高类的可读性、可维护性和变更引起的风险降低。
  • 实现:通过拆分职责到不同的类或模块中,确保每个类或模块都有明确的职责。

2. 开闭原则

  • 定义:软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。
  • 目的:提高软件系统的可扩展性和可维护性,避免因为修改已有代码而引入新的错误。
  • 实现:通过使用接口和抽象类,为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。

3. 里氏替换原则

  • 定义:子类必须能够替换其父类,并且替换后,程序的行为应与预期一致。
  • 目的:确保继承关系的正确性,避免子类破坏父类的行为。
  • 实现:在继承关系中,子类应遵守父类的行为规范,确保替换后系统的正确性。

4. 依赖倒置原则

  • 定义:高层模块不应该依赖于低层模块,二者都应该依赖于其抽象;抽象不应该依赖于细节,细节应该依赖于抽象。
  • 目的:降低高层模块与低层模块之间的耦合度,提高系统的可扩展性和可维护性。
  • 实现:通过面向接口或抽象类编程,实现高层模块与低层模块之间的解耦。

5. 接口隔离原则

  • 定义:客户端不应该被迫依赖于它们不使用的方法;接口应该小而专一,只包含客户端需要的方法。
  • 目的:使接口更加灵活,易于维护和扩展,避免因为接口过于庞大而导致的问题。
  • 实现:将大接口拆分成多个小接口,每个接口只包含客户端需要的方法。

6. 迪米特法则

  • 定义:一个对象应该对其他对象有最少的了解,只与直接相关的对象进行交互。
  • 目的:降低系统的复杂度,提高系统的可维护性和可扩展性。
  • 实现:通过限制对象之间的通信宽度和深度,实现系统的模块化设计。