1 单一职责原则
定义:一个类应只负责单一的职责。
简单来说就是一个类就只做一件事情,如果一个类功能太多,首先会导致类过于庞大,不利于复用;其次如果修改某一个功能可能会影响其它功能。
2 开闭原则
定义:类、模块和函数应该对扩展开放,对修改关闭
一个类应该对于扩展是开放的,但是对于修改是封闭的。比如需要做新的功能,首先考虑的是在现有的基础上去扩展,而不是直接在已有的代码上修改。
3 里氏替换原则
定义:所有引用基类(父类)的地方必须能透明地使用其子类的对象。
意思就是说使用父类的地方能够使用子类来替换,反过来,则不行,需要利用继承和多态来实现。
定义对象用父类,而在运行时再确定其子类类型,用子类对象来替换父类对象。
4 依赖倒置原则
定义:抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
面向接口编程,而不是面向具体实现去编程,就是各个模块之间相互传递的参数声明为抽象类型,而不是声明为具体的实现类。
5 接口隔离原则
定义:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
类之间的依赖关系应该建立在最小的接口上,接口的粒度要尽可能小,如果一个接口的方法过多,可以拆成多个接口。
6 迪米特原则
定义:一个软件实体应当尽可能少地与其他实体发生相互作用。
一个类对其他类知道的越少,耦合越小。