1.里氏代换原则
任何基类出现的地方,子类一定可以出现。子类可以扩展父类的功能,但不能改变父类原有的功能。
保证抽象类和接口的合理性,具备抽象性,不能适用于部分实现,另一部分实现报错。
2.依赖反转原则
高层模块不应该依赖低层模块,两者应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户于实现模块间的耦合。
对抽象进行编程,依赖不应该直接依赖实现,而是依赖接口
3.接口隔离原则:
客户端不应该被迫依赖于不使用的方法:一个类对另一个类的依赖应该建立在最小接口。
4.迪米特法则:
迪米特法则又叫最少知识原则。
只有你的直接朋友交谈,不跟陌生人说话,
如果两个软件实体无须直接通信,那么就不应当发生直接的相互调佣,可以通过第三方转发该调佣,降低耦合度,提高模块的独立性。
5. 合成复用原则:
尽量先试用组合或者聚合等关联关系来实现,其次才考虑适用继承关系来实现
多用组合,少用继承,继承的耦合度太高,分支太多