我想我可能会在这里回答我自己的问题,但是可以说,我在方法级别理解SRP意味着方法发挥了作用。如果我有每个方法都分别负责我班上一个特定角色的方法,但是如果一个方法使用很多这样的方法来完成一个角色,如save(),那么一切是否仍然坚持SRP?
这里是一个例子:
public void saveCertificationToDB(Cert cert){
if(certificateIsNotExpired(cert){
setCertProperties(cert);
openConnectionToDB();
overwriteCertificateInDB(cert);
closeConnectionToDB();
notifyUserSaveSuccessful();
}
}
答案 0 :(得分:0)
单一责任原则:
没有特定规则,仅SRP是一个准则。但是,如果您想考虑SRP,则应始终牢记
更改代码块(如类,函数等)的唯一原因
但是根据您给定的功能,有很多理由来更改功能代码块。
示例:
如果属性设置功能由于任何原因被修改,那么您必须更改 saveCertificationToDB()
以同样的方式,如果由于其他任何原因导致其他调用函数发生任何更改,那么您的 saveCertificationToDB()也需要更改
所以,通常缺少很多