现代C++软件架构:方法与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.7.1 单一责任原则

简而言之,单一责任原则(SRP)意味着每个代码单元应该只有一项职责。这意味着要编写只做一件事的函数,创建代表一种东西的类型,以及构建只关注一个方面的更高级别的组件。

这意味着,如果类管理某种类型的资源——例如文件句柄,那么它应该只做这件事,其他事情——例如文件解析,应交给其他类型去做。

通常,如果函数名称中包含“And”,那么它就违反了单一责任原则,应该进行重构。另一个特征是函数用注释来指示该函数每个部分的作用。每一部分作为一个独立的函数可能会更好。

与之相关的一个主题是最少知识原则(principle of least knowledge)。这个原则说任何对象都不需要知道其他对象的非必要信息,以便不依赖其他对象的内部结构。应用这个原则可以使代码的可维护性更高,元素之间的相互依赖性更小。