单一责任原则的范围是什么?



今天我工作的另一位工程师问我"这是什么责任?"我的答案如下:

"代码的每个范围,无论是语句,函数,类,模块,都应该有一个更改的理由。

但是,我到处阅读,人们在班级的背景下说话。我是因为告诉他SRP适用于他在代码中的每个范围吗?

鲍勃·马丁(Bob Martin(试图多次清除这一点。问题是这里有两种不同的原则。非常不幸的是,其中一个没有真正的名字,这就是为什么它通常与SRP混合的原因。

功能应该做一件事。他们应该做得好。他们应该只做。 - 清洁代码(第35页(

这本书的一部分被简单地称为"做一件事",但不是谈论SRP。马丁在下一本书中更加清楚这一点。

a 函数应该做一个,只做一个。当我们进行重构...最低水平时,我们会使用该原则。但这不是坚实的原则之一 - 它不是SRP。 - 清洁架构(第62页(

SRP的最佳在线解释是Martin的博客,该博客在Tag Wiki中进行了总结。在博客和他的书中,马丁(Martin((相当(在使用术语模块来描述SRP应用的范围方面是一致的。模块只是一个源文件,通常仅表示类文件。

一个模块应负责一个,只有一个演员。

最新更新