【发布时间】:2015-07-10 22:42:00
【问题描述】:
最佳实践不断地规定,一个方法应该只对一件事负责。 我遇到了一种做 3 件事的方法,但我不知道如何 1. 根据最佳实践分解它。 2. 命名。 另外我想知道现实生活中有多少方法真的只做一件事,就像教科书一直建议的那样?
method ( entryId ) {
if (this.checkDuplicate(entryId)) {
this.deleteDuplicate(entryId);
return true;
} else {
return false;
}
}
正如我们所见,名为 method 的方法不仅仅做一件事。是否甚至可以遵守“方法应该只对一件事负责”的规则?
如果是,上面的算法怎么分解成呢?
如果不是,我能命名一个能做这么多事情的方法吗?
【问题讨论】:
-
您可能希望深入了解这一点,您基本上是在说永远不应该使用 if 语句。你应该问自己的是
method函数名只做一件事吗?例如,您不需要执行 UpdateDataBase 和发送电子邮件的方法。 -
从技术上讲,这种方法甚至不应该存在,因为
deleteDuplicate(entryId)应该检查是否有要删除的内容!如果您以这种方式保留此方法,checkDuplicate(entryId)将被调用两次:通过方法和 deleteDuplicate
标签: java methods coupling cohesion