1、单一职责原则
单一职责原则英文名称是Single Responsibility Principle,简称SRP。
There should never be more than one reason for a calss to change.(有且只有一个原因引起类的变更。)
接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。
2、里氏替换原则
里氏替换原则的英文名称是Liskov Substitution Principle,简称SLP。
简单的说,就是父类实现的方法子类一定都要实现,在一个地方调用父类可以完成的工作,替换成子类也一定能够完成。
包含4层含义:子类必须完全实现父类的方法;子类可以拥有个性;覆盖或实现父类方法时输入参数可以被放大(参数类型的基类);输出结果可以被缩小(参数类型的子类)。
3、依赖倒置原则
依赖倒置原则(Dependence Inversion Principle),简称DIP。
High level modules shoud not depend upon low level modules.Both shoud depend upon abstractions.Abstractions shoud not depend upon details.Details shoud depend upon abstractions.
简单的解释为:高层模块不应该依赖底层模块,二者应该依赖抽象类。抽象不应该依赖细节,细节应该依赖抽象。
依赖倒置原则是面向对象(OO)编程的精髓。
4、接口隔离原则
接口隔离原则英文缩写ISP,全称Interface Segregation Principle。
解决胖接口问题,把不同业务逻辑拆分成不同的接口,避免不必须的实现。
5、迪米特法则
迪米特法则(Law of Demeter,LoD),也称为最小只是原则(Least Knowledge Principle,LKP)。
一个对象应该对其他对象有最少的了解(低耦合)。
6、开闭原则
Software entities like classes,modules and functions shoud be open for extension but closed for modifications.
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。