SOLID六大设计原则总结
simple responsibility principle 单一职责原则。
there should never be more than one reason for a class to change. 一个类中应该只处理一个职责,而不应该同时处理多个职责。否则当出现类需要修改时,可能会导致其他职责不能正常使用。
好处是提高代码可读性,系统可维护性,复杂度降低。
Open close principle 开闭原则
软件实体应该是可扩展的,对于扩展是开放的,而对于修改是关闭的。开闭原则的关键是抽象,通过抽象一组功能,而没有具体的实现,能够使软件的功能随着需求的变化而变化。
好处是类的可维护性提高,复杂度降低。
LisKov substitutation principle 里氏替换原则
1.派生类不应该重写基类的非抽象方法。2.当需要功能扩展时,应该尽量不要重写基类的方法,而是另写一个方法。3. 如果需要重写基类的方法,则方法的参数应该比基类的参数更宽松。总之,派生类不应该影响基类所实现的具体方法。
里氏替换原则是开闭原则的重要实现方法之一。有利于提高代码可维护性。
Law of Demeter 迪米特原则
talk only to your immediate friend. 一个类应该尽可能与其他类保持联系,尽可能少知道其他类的信。尽量使用private属性,一个类不该由自己实现的功能就不要实现,避免引入不相干的类。
主要目的是为了实现低耦合,提高系统稳定性。
Interface segregation prinpical 接口隔离原则
类之间的依赖应该建立在最小粒度的接口上,也就是说,接口的设计应该满足单一职责原则。每个调用方最好能有自己专业的接口,而不能建立一个庞大的接口供所有调用方使用。
好处是可以避免接口污染,接口污染会导致一个类实现不必要的功能。提高灵活性,实现高内聚。
Dependence inversion principal 依赖倒置原则
高层模块不应该依赖于底层模块,两者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。依赖倒置的中心思想是面向接口编程。
好处是减少类之间的耦合,提高代码可读性。