设计模式(4)设计模式的基本原则(下)SOLID 原则
发布时间:2023-08-11 00:18:48 文章来源:哔哩哔哩

## SOLID 原则

SOLID 是一个缩写,每个字母代表一个准则,是由罗伯特·C·马丁(Robert C. Martin)在 2000 年代初提出的一组面向对象设计的指导原则。

1. **单一职责原则 (Single Responsibility Principle, SRP)**


【资料图】

当代码的复杂性增加时,我们需要将代码分解成更小的部分,将它们按照不同的职责进行组织。

每个类应该只负责一项职责,引起它变化的原因也应该只有一个。

这样不仅可以减少复杂度,还可以在变更时降低影响范围。

2. **开放封闭原则 (Open Closed Principle, OCP)**

对扩展开放,对修改关闭。

如果一个类已经完成了其既定的职责,当需求发生变化时,应该通过扩展的方式来应对变化,而不是修改原有的代码。

开放封闭原则强调通过抽象来实现扩展,因此需要在设计中充分考虑抽象角色的定义。

抽象接口或基类应该明确描述出可以扩展的行为,而具体的实现则可以在需要的时候进行扩展。

开放封闭原则不能应用于所有对类进行的修改中,如果类本身有问题,修改是必要的。

3. **里氏替换原则 (Liskov Substitution Principle, LSP)**

里氏替换原则是由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在 1987 年提出的。

里氏替换原则提供了一种对继承关系的指导规则,它强调子类应该可以替换掉父类,软件单位的功能不受影响。

如果S是T的子类型,那么在任何T类型出现的地方应该都可以替换为S类型,而不会导致程序的任何错误或者异常。

这要求子类子类不应该破坏父类的约束,子类重写父类的方法时,方法的输入参数要比父类方法的输入参数更宽松或者相等,方法的输出结果要比父类更具体或者相等。

在大部分的编程语言中,里氏替换的规则已经内置其中,如果你违反了这些规则,编译器会报错。

4. **接口隔离原则 (Interface Segregation Principle, ISP)**

当一个接口内定义的方法过多时,实现这个接口的类可能需要实现一些它并不需要的方法。

这时候,我们就需要将这个接口拆分成多个更细粒度的接口,以便于让实现类只依赖于它们实际使用的接口方法。

接口应该遵循单一职责原则,应该多用接口组合的方式,不要强迫类依赖于其不使用的方法。

5. **依赖倒置原则 (Dependency Inversion Principle, DIP)**

在传统的开发过程中,自然和直观的方式是,先开发低层模块(如数据库访问、文件操作)然后再开发高层模块(如业务逻辑)。

这导致高层模块往往依赖于低层模块,因为高层模块需要使用低层模块提供的功能。

依赖倒置原则要求将这种自然的依赖关系倒置或反转,让高层和低层模块都依赖于抽象。

这种倒置使得低层模块可以自由地改变和扩展,而不会影响到高层模块。

例如,我们可以先定义一个抽象的数据库访问接口,然后让低层模块实现这个接口,高层模块依赖于这个接口,从而实现高层模块和低层模块的解耦。

关键词:

热门推荐HOT

最近更新

猜你喜欢LOVE

Copyright @ 2001-2023 www.u74.cn All Rights Reserved 商业时报网 版权所有 关于我们

网站信息内容, 均为相关单位具有著作权,未经书面授权,转载注明出处
未经商业时报网书面授权,请勿建立镜像,转载请注明来源,违者依法必究

皖ICP备2022009963号-4
联系邮箱:39 60 29 14 2@qq.com

关于我们 | 联系方式 | 供稿服务 | 版权声明 | 友情链接 | 合作伙伴 |