1.单一职责原则
一个类应当只有一个引起它变化的原因,应当只有一个职责。这种原则同样适用于方法,一个方法也应该做好一件事,如果一个方法处理的事情很多代码可读性就比较差(可以看源代码,基本都是把方法拆的特别细)。这样做的好处就是提高了类的可读性,降低了类的负责度,提高了内聚性。
2.开闭原则
开闭原则的定义是:一个软件实体应当对扩展开放,对修改关闭。
这个原则说的是,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。通俗来讲就是不需要修改以前的代码(或者只修改一点点而不是动以前的骨架)就可以对模块进行拓展。
在实际开发中其实就是面向接口编程,我们会把抽象层写好,然后这些实现类都是可变化可拓展的。
3.里氏替换原则
该原则是针对继承提出的,主要思想是子类可以实现父类的抽象方法,但是尽量不要重写父类的方法。
子类可以增加自己的特有方法(这句话的意思不就是子类的特有方法不要定义到父类中)。
4.依赖倒置原则
面向接口编程而不是面向实现编程,模块之前的依赖通过抽象发生,接口或抽象不依赖与实现类,而是实现类依赖与接口或者抽象。
5.接口隔离原则
将接口拆分成更细小的接口,不要试图建立一个庞大的接口,让很多类去使用,通俗来讲就是在接口中定义方法的时候,要根据方法的功能定义到不同的接口中。
6.迪米特法则
“不要和陌生人说话”,从依赖者的角度来说就是不去依赖那些不该依赖的对象,从被依赖者的角度来说就是只暴露那些需要暴露的方法,这样做的好处就是减少了类的耦合,也使得代码更加严谨。
7.合成复用原则
将已有对象纳入新对象中,而不是直接继承已有对象,新对象可以调用已有对象的方法从而达到复用,这样就不会破坏类的封装性。