1.单一职责
一个类最好只做一件事。
这个在实现中尽量遵守,但有时候也很难遵守,因为会存在职责扩展,强制遵守这一原则改动成本可能会很大。
2.里氏替换原则
子类可以扩展父类的功能,但不要改变父类的功能。
3.依赖倒置原则
高层应该依赖底层模块的抽象,而不是依赖底层模块的具体,即面向接口编程。
在实际编程中,我们一般要做到如下3点:
1).低层模块尽量都要有抽象类或者接口
2).变量的声明类型尽量是抽象类或者接口
3).使用继承时要遵循里氏替换原则
4.接口隔离原则
尽量细化接口,即接口拆分要合理,不要把所有功能都放在一个接口里,这样会导致需要依赖此接口的类要实现很多自己不需要的方法。
5.迪米特法则(最少知道原则)
一个类对它依赖的类知道的越少越好。也就是说,对于被依赖的类,应该当复杂的逻辑都封装在类的内部,对外除了提供public方法,不对外泄露任何信息。
即类与依赖的类之间,应该只存在方法调用关系,而不应该大量存在对依赖的类做业务逻辑处理。
6.开闭原则
对扩展开放,对修改关闭。