面向对象设计的重要原则:SOLID

SOLID是面向对象设计5大重要原则的首字母缩写:
1、单一职责原则(SRP)
2、开放封闭原则(OCP)
3、里氏替换原则(LSP)
4、接口隔离原则(ISP)
5、依赖倒置原则(DIP)

下面具体解释一下每个原则:
1、单一职责原则(SRP)
表明一个类只有一个职责,一个类就像容器一样。它能添加任意数量的属性、方法等。然而,如果你试图让一个类实现太多,很快这个类就会变得笨重,任意小的改变都会让这个单一类的变化。当你改了这个类,为了不对现有系统造成影响,不得不重新测试甚至解决由此带来的bug。SRP原则的核心是将整个问题分割成多个更小的部分,当某个小部分需要改变时,需要重新测试验证的也只有很小的一部分。

2、开放封闭原则(OCP)
表明一个类应该对外扩展开放,对修改关闭,这意味着一旦创建了一个类并且应用程序的其他部分开始使用它,而不应该修改它,因为很可能你的改变会引发系统的崩溃。如果需要一些额外功能,应该扩展这个类而不是修改它。使用这种方式,现有系统不会看到任何新变化的影响。同时,只需要测试新创建的类。

3、里氏替换原则(LSP)
表明派生的子类应该可替换基类,也就是说任何基类可以出现的地方,子类一定可以出现。值得注意的是,当你通过基础实现多态行为时,如果派生类没有遵守LSP,可能会让系统引发异常。所以谨慎使用继承,只有确定是“is-a“的关系时才使用继承。

4、接口隔离原则(ISP)
表明类不应该被强迫依赖他们不使用的方法,也就是说一个接口应该拥有尽可能少的行为,它是精简的,也是单一的。

5、依赖倒置原则(DIP)
表明高层模块不应该依赖低层模块,相反,他们应该依赖抽象类或者接口。这意味着不应该在高层模块中使用具体的低层模块。因为这样的华,高层模块变得紧耦合低层模块。这样的话,如果修改了低层模块,那么高层模块也会被修改。根据DIP原则,高层模块应该依赖抽象(以抽象类或者接口的形式),低层模块也是如此。通过面向接口(抽象类)编程,紧耦合被移除

猜你喜欢

转载自blog.csdn.net/hhhzua/article/details/81702447