SOLID设计原则

SOLID设计原则
Single Responsibility Principle单一职责原则
单一职责原则(SRP)表明一个类有且只有一个职责。
一个类就像容器一样,它能添加任意数量的属性、方法等。
然而,如果你试图让一个类实现太多,很快这个类就会变得笨重。
任意小的改变都将导致这个单一类的变化。当你改了这个类,你将需要重新测试一遍。
如果你遵守 SRP,你的类将变得简洁和灵活。
每一个类将负责单一的问题、任务或者它关注的点,这种方式你只需要改变相应的类,只有这个类需要再次测试。
SRP 核心是把整个问题分为小部分,并且每个小部分都将通过一个单独的类负责。

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

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

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

Dependency Inversion Pronciple 依赖反转原则
依赖倒置原则(DIP)表明高层模块不应该依赖低层模块,相反,他们应该依赖抽象类或者接口。
这意味着你不应该在高层模块中使用具体的低层模块。
因为这样的话,高层模块变得紧耦合低层模块。
如果明天,你改变了低层模块,那么高层模块也会被修改。
根据DIP原则,高层模块应该依赖抽象(以抽象类或者接口的形式),低层模块也是如此。
通过面向接口(抽象类)编程,紧耦合被移除。
那么什么是高层模块,什么是低层模块呢?
通常情况下,我们会在一个类(高层模块)的内部实例化它依赖的对象(低层模块),这样势必造成两者的紧耦合,任何依赖对象的改变都将引起类的改变。

文字引用:https://www.cnblogs.com/OceanEyes/p/overview-of-solid-principles.html#_label0

原文地址:https://www.cnblogs.com/maomaodesu/p/11634222.html