设计模式的六大原则

面向对象设计的六个基本原则:开放封闭、里氏代换、依赖倒转、接口隔离、迪米特法则和单一职责

问题

什么是设计模式的六大原则?

解答

开放封闭原则(Open Close Principle)

通过扩展软件实体来解决需求变化,而不是修改已有代码。软件产品在生命周期内必然发生变化,在设计时应该适应这些变化,提高项目的稳定性和灵活性。

里氏代换原则(Liskov Substitution Principle)

使用基类的地方可以用子类完美替换。子类可以扩展父类的功能,但不能改变父类原有的功能。子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,子类中可以增加自己特有的方法。

这样可以增加程序的健壮性,即使增加了子类,原有的子类还可以继续运行,互不影响。

依赖倒转原则(Dependence Inversion Principle)

面向接口编程,依赖于抽象而不依赖于具体。在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类。这是开放封闭原则的基础。

接口隔离原则(Interface Segregation Principle)

使用多个隔离的接口,比使用单个接口要好。目的是降低类之间的耦合度。例如支付类的接口和订单类的接口,应该设计成两个隔离的接口,而不是混在一起。

迪米特法则(Demeter Principle)

也称最少知道原则。一个对象应当对其他对象有尽可能少的了解,即类间解耦。一个类尽量减少自己对其他对象的依赖,只有使各个模块之间的耦合尽量低,才能提高代码的复用率。

单一职责原则(Single Responsibility Principle)

一个方法或一个类只负责一件事情。各个职责的程序改动,不影响其他程序。这样可以降低类和类的耦合,提高可读性,增加可维护性和可扩展性,降低可变性的风险。

关键点

  • 开放封闭原则:通过扩展而非修改来应对变化
  • 里氏代换原则:子类可以替换父类,但不能改变父类原有功能
  • 依赖倒转原则:面向接口编程,依赖抽象而非具体实现
  • 接口隔离原则:使用多个专门的接口,降低耦合度
  • 迪米特法则:类之间保持最少了解,减少依赖关系
  • 单一职责原则:一个类或方法只负责一个职责