参考资料:设计模式的七大原则_设计模式的7大基本原则-CSDN博客
https://www.cnblogs.com/songgj/p/11297016.html
【设计模式】详解设计模式七大原则_设计模式原则-CSDN博客
开放封闭原则:
对扩展开放,对修改封闭。比如一个类中有两个功能,现在要增加第三个功能,那么这个新增加的功能不能对另外两个功能有影响。
这是面向对象最重要的原则。
单一职责原则
一个类只负责一个功能领域中的相应职责,降低一个类的复杂性。提高类的可读性和可维护性。同时降低变更引起可能出现的风险,如果接口的单一职责做得好,一个接口修改只对应的实现类有影响,对其他的接口无影响。
例如在使用MVC开发模式时使用的就是单一职责的体现
里氏转换原则:
继承必须确保父类中所拥有的所有性质在子类中依然成立。子类可以扩展父类的功能,但是子类尽量添加新的方法不要改变父类原有的功能,程序中对于实例化对象的子类型,不需要修改代码,可以直接进行替换(只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道父类还是子类;但是反过来则不可以,有子类的地方,父类未必就能适应)。
依赖倒转原则:
1)高阶的模块不应该依赖低阶的模块,它们都应该依赖于抽象
2)抽象不应该依赖于实现,实现应该依赖于抽象
其核心思想是:要面向接口编程,不要面向实现编程。
接口依赖原则:
类之间的依赖关系应该建立在最小的接口上,将庞大的接口拆分成更小更具体的接口
合成 / 聚合复用原则:
尽量使用合成 / 聚成,而不是通过继承来达到复用的目的
合成复用原则是通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。
最少知识原则(迪米特法则):
一个软件应当尽可能少的和其他实体发生相互作用。如果两个类之间无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,尽量减少对其他类的依赖,提高模块的相对独立性。