架构整洁之道--SOLID原则

SRP:单一职责

不要将不同行为者的代码混在一起。

一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中,即又定义有且仅有一个原因使类变更。

OCP:开闭

软件系统想要更容易被改变,那么其设计就必须允许新增代码来修改系统行为,而非只能靠修改原来的代码。

一个好的软件架构设计师会努力将旧代码的修改需求量降至最小,甚至为 0。但该如何实现这一点呢?我们可以先将满足不同需求的代码分组(即 SRP),然后再来调整这些分组之间的依赖关系(即 DIP)。

不检查修改的模块被依赖,经常修改的模块依赖别人。

可以在两个模块之间定义interface,让这两个模块不用直接依赖,有时候可以实现依赖反转的效果。比如数据库层的操作方法的interface,它不依赖业务层和数据库实现层。

LSP:里氏替换

如果想用可替换的组件来构建软件系统,那么这些组件就必须遵守同一个约定,以便让这些组件可以相互替换。

对于一些特殊条件判断,可以把条件写到数据库。直接在代码里写if x=’else’是不好的,最好改成可配置的。

ISP:接口隔离

避免不必要的依赖,依赖不需要的东西是有害的。

每个接口服务于一个子模块。简单地说,就是使用多个专门的接口比使用单个接口要好很多。

DIP:依赖反转

低层实现应该依赖高层,而不是高层依赖低层。

接口比实现更稳定。各个模块间应该用接口依赖,import等导入操作应该导入抽象定义而非具体实现,可以通过抽象工厂实现。除非具体实现不轻易修改,就可以直接导入具体类了。


架构整洁之道--SOLID原则
https://nrbackback.github.io/2022/10/22/架构整洁之道--SOLID原则/
作者
John Doe
发布于
2022年10月22日
许可协议