1.单一职责原则
一个类只负责一项职责,修改a类,不影响无关的b类。
2.里氏替换原则
所有引用父类的地方必须能使用其子类的对象替换,不影响正常功能。
3.依赖倒置原则
通过接口把read的行为通用化,Newspaper和Book都可以传入给mother
class Newspaper implements IReader {
public String getContent(){
return "这个是报纸的内容……";
}}
class Book implements IReader{
public String getContent(){
return "这个是书上的内容……";
}}
class Mother{
public void narrate(IReader reader){
System.out.println("妈妈开始讲故事");
System.out.println(reader.getContent());
}}
public class Client{
public static void main(String[] args){
Mother mother = new Mother();
mother.narrate(new Book());
mother.narrate(new Newspaper());
}}
4.接口隔离原则
一个接口的无关方法不能太多,需要根据业务做到高内聚
一个接口有过多的方法,导致只想实现method1的类a,也强制需要实现其他的method,需要将接口的方法适度拆分到最小
interface I {
public void method1();
public void method2();
public void method3();
public void method4();
public void method5();
}
======拆分后,各自的类就可以引用自己想要的接口了======
interface I1 {
public void method1();
}
interface I2 {
public void method2();
public void method3();
}
interface I3 {
public void method4();
public void method5();
}
5.迪米特法则
尽量降低类与类之间的耦合,一个其他类应该完成的操作,不要把实现放到自己的实现类里。
类的调用链路如下:
a-》b-》c
a调用b的时候只关注方法级别就好了,不需要调用b获取c,来实现具体的细节,这样可以降低耦合度。
6.开闭原则
当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。