设计模式-六大原则

设计模式-六大原则

单一职责原则

定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。

使用单一职责原则带来哪些好处呢?

类的复杂性降低,一个类只有一个职责,类比较清晰。
可读性、可维护性提高。
变更引起的风险降低。

里氏替换原则

定义:所有引用基类的地方必须能透明地使用其子类的对象。就是说有父类出现的地方,都可以用子类来替换的。

子类必须完全实现父类的地方。
子类可以有自己的特性。
覆盖或实现父类的方法时输入参数可以被放大。
覆盖或实现父类的方法时输出结果可以被缩小。

使用里氏替换原则带来的好处?
增强了程序的健壮性,版本升级时也可以保持非常好的兼容,即使增加子类,原有的子类还可以继续运行。在实际项目中,每个子类对应不同的业务含义,使用父类作为参数,传递不同的子类完成不同的业务逻辑,非常完美。

依赖倒置原则

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

接口隔离原则

定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

接口要尽量小。但是在拆分接口的时候,首先必须满足单一职责原则。

接口要高内聚。
首先要明白什么是高内聚?高内聚就是提高接口、类、模块的处理能力,同时减少对外的交互(也就是少暴漏接口出去)。也就是说,尽量减少对外提供的接口,让提供的每个接口的处理能力增强。

定制服务。可以理解为对每个模块提供专用的接口。也可以理解为只提供访问者需要的方法,不需要的方法都不提供。
接口设计是有限度的。

迪米特法则

定义:一个对象应该对其他对象保持最少的了解。
问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。

解决方案:尽量降低类与类之间的耦合。

开闭原则

定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。