我正在编写一个将一系列资源作为输入的代码,并尝试锁定其中的每个资源。如果任何人失败,则将努力释放所有资源上的锁。这意味着“全部”资源具有锁定或根本没有。我有两种方法,在这些方法中,我看不出有什么明显的好处。在这种情况下,标准的编码惯例是什么?设计模式有名称吗?
OPTION 1:
// one function taking on 2 responsibilities. appears bad to have unlock code in locking function
public boolean getLock(List<Resource> resources) {
for (Resource r : resources) {
if (! Lock.getLock(r)) {
releaseLocks(resources);
return false;
}
}
return true;
}
OPTION 2:
public boolean getLock(List<Resource> resources) {
for (Resource r : resources) {
if (! Lock.getLock(r)) {
return false;
}
}
return true;
}
public boolean stateChecker(List<Resource> resources) {
if (!getLock(resouces)) {
releaseLocks(resources);
return false;
}
return true;
}
函数应始终指向单个函数responsibility
。尽管选项1看起来更优雅,并且减少了代码的行数,但是对于可维护性标准视图,某人或您自己稍后在再次访问时难以理解该功能的目的。
可能是一个怪异的例子,仅举一个实时的例子,我们在父亲,兄弟,丈夫等一生中都扮演着多个角色。但是boxes
对于这些角色及其职责,我们各有不同。
没有specific advantage
,但是将您的职责仅限于定义的角色总是有好处的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句