我想我可以在这里回答我自己的问题,但是让我说我理解方法层面的SRP意味着一个方法可以起到一个作用。如果我有方法,每个方法都单独覆盖我的类中的一个特定角色,但是一个使用大量这些方法来完成一个角色的方法,比如save(),那么一切仍然会遵循SRP吗?
这是一个例子:
public void saveCertificationToDB(Cert cert){
if(certificateIsNotExpired(cert){
setCertProperties(cert);
openConnectionToDB();
overwriteCertificateInDB(cert);
closeConnectionToDB();
notifyUserSaveSuccessful();
}
}
单一责任原则:
没有具体的规则,只是SRP是一个指导方针。但是如果你想考虑SRP那么你应该始终牢记
改变代码块的唯一原因,如类,功能等。
但是根据你给定的函数,有很多理由改变你的功能代码块。
例:
如果属性设置功能因任何原因而修改,则必须更改saveCertificationToDB()
同样,如果由于任何其他原因而对其他调用函数进行任何更改,那么您的saveCertificationToDB()也需要更改
所以,一般来说有很多缺点