1.一个类只做一件事情,不要使用一个类完成很复杂的功能。而是拆分成更小,更具体的类。
2.一个类在实现之后,应该对扩展开发,对修改封闭。
3.如果有A,B两个类。假如A 依赖B,不应该在A 中直接调用 B类,而是应该使用依赖注入的方式,通过注入,将B类对象注入给A 类。这样B 对于 A来说,就是可以替换的。如果现在有另外的类C 提供了和B一样的接口,就可以在C 和 B之间进行切换。
4.数据参数,和常量应该放在配置文件中。像类的关系定义,也应该是可以配置的。比如说在上一条原则中,我们说的A,B,C 三个类,在这里应该选择B类还是C类,不应该在代码中写,而应该由配置文件决定。
5.所有的代码只需要关心某个类提供了哪些接口,而不需要关心这个类的具体实现。对于 A 类,只需要关心B 和 C 提供的某个接口,而不需要关心B 和 C 具体是怎么实现的。
多用组合,少用继承
针对接口编程,不针对实现编程
为交互对象之间的松耦合而努力
类应该对扩展开放,对修改关闭
依赖抽象,不是依赖具体类(新的原则)