1.开闭原则
对扩展开放,对修改关闭。
在面向对象开发中,开闭原则可以通过继承父类、实现接口两种方式来实现。继承父类不会修改父类的代码来实现代码功能的拓展,可以通过定义接口,子类做不同的实现来实现不同的功能也可以实现代码功能的拓展。
2.里式替换原则
继承必须保证超(父)类所拥有的性质在子类中依然成立。遵守里式替换原则时,要保证子类不对父类的属性和方法进行重写,而只是扩展父类的功能。
3.单一职责原则
一个类只应该承担一项责任。当一个类承担太多的职责和功能,其中一个职责的变化可能会对其他职责变化产生影响,对代码的复用产生不好的影响。
单一职责可以降低类的复杂度,提高内聚,降低代码之间的耦合。提高代码的可读性,逻辑更加清晰,代码更容易维护和扩展。减少类变更时所带来的影响。
4.接口隔离原则
尽量使接口更小和更具体。在定义对外的接口时,我们需要把庞大臃肿的接口进行分解拆分,变为更小更具体的接口,增加接口的灵活性和扩展性。逻辑更加清晰,有利于代码的复用。
5.依赖倒置原则
高层模块不应依赖底层模块,两者都应该依赖其抽象,高层模块和底层模块都面向接口开发,减少类之间的耦合,对外封闭实现逻辑,提供对外开放的接口。代码的实现不影响其他人的接口调用。
6.迪米特原则
一个类应尽少的与其他类发生相互作用,可以降低代码之间的耦合度,可以创建中介类来处理类之间的相互逻辑。
7.合成复用原则
在设计类的复用时,尽量使用组合或聚合的方式进行设计,减少继承的使用,多个类的组合或聚合可以增加类的复用性和灵活性。