SOLID 原则

单一功能原则

单一功能原则(Single responsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的(这个类的)服务都应该严密的和该功能平行(功能平行,意味着没有依赖)。

保持一个类专注于单一功能点上的一个重要的原因是,它会使得类更加的健壮。

开闭原则

开闭原则 (The Open/Closed Principle, OCP) 规定"软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的"[1],这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用品质的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。

里氏替换原则

一个对象在其出现的任何地方,都可以用子类实例做替换,并且不会导致程序的错误。

经典的例子: 正方形不是长方形的子类。原因是正方形多了一个属性"长 == 宽"。这时,对正方形类设置不同的长和宽,计算面积的结果是最后设置那项的平方,而不是长*宽,从而发生了与长方形不一致的行为。如果程序依赖了长方形的面积计算方式,并使用正方形替换了长方形,实际表现与预期不符。

接口隔离原则

接口隔离原则(英语:interface-segregation principles, 缩写:ISP)指明客户(client)不应被迫使用对其而言无用的方法或功能。[1]接口隔离原则(ISP)拆分非常庞大臃肿的接口成为更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。这种缩小的接口也被称为角色接口(role interfaces)。[2]接口隔离原则(ISP)的目的是系统解开耦合,从而容易重构,更改和重新部署。接口隔离原则是在SOLID中五个面向对象设计(OOD)的原则之一,类似于在GRASP中的高内聚性。[3]

依赖反转原则

依赖反转原则(Dependency inversion principle,DIP)是指一种特定的解耦(传统的依赖关系创建在高层次上,而具体的策略设置则应用在低层次的模块上)形式,使得高层次的模块不依赖于低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象。

该原则规定:

  • 高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口。
  • 抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。
相关推荐
繁华似锦respect3 分钟前
C++ 设计模式之观察者模式详细介绍
linux·开发语言·c++·windows·观察者模式·设计模式·visual studio
做cv的小昊5 分钟前
在NanoPC-T6开发板上通过USB串口通信实现光源控制功能
java·后端·嵌入式硬件·边缘计算·安卓·信息与通信·开发
用户69371750013846 分钟前
21.Kotlin 接口:接口 (Interface):抽象方法、属性与默认实现
android·后端·kotlin
溪饱鱼6 分钟前
主动与被动AI交互范式
前端·后端·aigc
写代码的皮筏艇8 分钟前
Sequelize 详细指南
前端·后端
用户2946555091911 分钟前
游戏开发中的向量魔法
后端
froginwe1113 分钟前
CSS Text(文本)详解
开发语言
兔子零102414 分钟前
nginx 配置长跑(上):从一份 server 到看懂整套路由规则
后端·nginx
繁华似锦respect15 分钟前
C++ 自定义 String 类
服务器·开发语言·c++·哈希算法·visual studio
啥都学点的程序员17 分钟前
python项目调用shardingsphere时,多进程情况下,shardingsphere配置的连接数会乘以进程数
后端