6大设计原则:
- 单一职责原则
接口一定做到单一职责,类尽量做到只有一个原因引起变化。 - 里氏替换原则
两种定义:- 如果对每一个类型为S的对象obj1,都有类型为T的对象obj2,使得以T定义的所有程序P在所有的对象obj1都替换成obj2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
- 所有引用基类的地方必须能透明地使用其子类的对象
- 依赖倒置原则(面向接口编程) 高层模块不应该依赖底层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;接口或抽象类不依赖于实现类;实现类依赖接口或抽象类。 三种写法:
- 构造函数传递依赖对象
- Setter方法传递依赖对象
- 接口方法声明依赖对象
- 接口隔离原则 实现类不应该依赖它不需要的接口 类间的依赖关系应该建立在最小的接口上
- 迪米特法则(最少知道原则) 一个类对需要耦合或调用的类知道得最少
- 开闭原则 一个软件实体如类,模块,函数应该对扩展开放,对修改关闭