S:Single 单一职责原则
单一职责原则指的是,一个模块或者一个类的职责要单一。比如一个水果店,那它的单一职责就是卖水果。而不应该同时存在卖菜卖水果卖电脑的行为,水果店那你就单单只经营水果生意就好了。只要是水果你都可以卖,但是不要卖其他杂七杂八的。主要目的是降低耦合性,提高内聚性,同时降低了复杂程度。
O: Open 开闭原则,对拓展开放,对修改关闭。
比如常用的装饰器模式,装饰类拓展功能的那部分就遵循了对拓展开放的原则。装饰类不能对被装饰类进行修改,就遵循了对修改关闭的原则。代理模式也是一样的。
L: Li 里。里氏替换原则
里氏替换原则指的是,子类继承父类,拥有父类的属性和行为,这里主要是针对行为来说,子类在重写父类的方法的时候,不可以修改父类原有的行为。比如父类有一个下载视频的行为,那重写下载视频这个方法的时候,就不能用来下载音乐。可以修改从不同的地方下载视频。但是一般情况下继承自父类的方法一般不做修改,因为修改之后容易引起程序错误。
I:Interface 接口隔离原则
通俗的讲就是使用接口的时候不宜定义大而全的接口。因为有些类实现这个接口的时候不需要那么多功能。那就造成了接口定义的功能冗余。要针对性的定义接口,需要什么功能就定义什么样的接口。如果类中实现了很多空方法,也会造成阅读代码的人一头雾水,也会违背职责单一的原则。这也算是对单一职责的补充吧。接口是为实现高内聚,低耦合提供的一个方法。
D: Dao 倒。 依赖倒置原则
从业务和类的角度区分。业务层类不应依赖具体实现的类。可以使用接口或者抽象类来进行隔离。通俗的讲就是高层业务代码不依赖底层代码实现,底层代码实现也不依赖高层业务代码。
依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合。