一个函数应该分担两个职责,还是应该使用状态检查器函数

Java开发人员

我正在编写一个将一系列资源作为输入的代码,并尝试锁定其中的每个资源。如果任何人失败,则将努力释放所有资源上的锁。这意味着“全部”资源具有锁定或根本没有。我有两种方法,在这些方法中,我看不出有什么明显的好处。在这种情况下,标准的编码惯例是什么?设计模式有名称吗?

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该在R中使用crossprod还是基函数来计算两个向量的距离平方平方?

来自分类Dev

我应该在主函数内部还是外部声明一个变量?

来自分类Dev

我应该测试一个函数的整个返回还是只测试一个样本?

来自分类Dev

Mojolicious:我应该使用一个还是多个Websocket?

来自分类Dev

我应该把两个或多个 Vue.js 组件使用的函数放在哪里?

来自分类Dev

什么时候应该在一个函数中使用一个函数而不是一个单独的私有函数?

来自分类Dev

在函数返回NULL应该返回一个整数

来自分类Dev

触发一个函数(JavaScript、jQuery),应该很简单

来自分类Dev

一个函数应该信任另一个函数的程度

来自分类Dev

any()函数检查两个TRUE而不是一个

来自分类Dev

仅将参数传递给另一个函数的函数是否应该对该参数进行类型检查?

来自分类Dev

两个函数返回一个在第三函数中使用的值

来自分类Dev

在一个函数中返回两个变量

来自分类Dev

jQuery中的一个div两个函数

来自分类Dev

在一个函数中返回两个变量

来自分类Dev

两个对象,一个“不是函数”

来自分类Dev

一个函数调用中的两个参数

来自分类Dev

从两个不同的页面调用一个函数

来自分类Dev

一个仅将参数传递给另一个函数的函数是否应该对该参数进行类型检查?

来自分类Dev

函数参数中的int * vs int [] vs int(*)[]。我应该使用哪一个?

来自分类Dev

我应该如何包括函数返回一个单声道时使用Mono.zipWith?

来自分类Dev

应该使用Function构造函数形成一个闭包吗?

来自分类Dev

在两个控制器中调用一个函数 - AngularJS 1.x

来自分类Dev

应该如何用Chai测试某些东西是否应该是一个函数

来自分类Dev

我应该使用一个HTTP请求来检查是否可以执行某个操作,然后使用另一个HTTP请求来执行该操作,还是应该将其捆绑到一个请求中?

来自分类Dev

一行两个 div,只有一个应该缩放

来自分类Dev

我应该将一个简单的函数重写为一个类吗?

来自分类Dev

将一个监听器添加到Promise之后,我应该使用原始的Promise还是新的Promise?

来自分类Dev

将一个监听器添加到Promise之后,我应该使用原始的Promise还是新的Promise?

Related 相关文章

  1. 1

    我应该在R中使用crossprod还是基函数来计算两个向量的距离平方平方?

  2. 2

    我应该在主函数内部还是外部声明一个变量?

  3. 3

    我应该测试一个函数的整个返回还是只测试一个样本?

  4. 4

    Mojolicious:我应该使用一个还是多个Websocket?

  5. 5

    我应该把两个或多个 Vue.js 组件使用的函数放在哪里?

  6. 6

    什么时候应该在一个函数中使用一个函数而不是一个单独的私有函数?

  7. 7

    在函数返回NULL应该返回一个整数

  8. 8

    触发一个函数(JavaScript、jQuery),应该很简单

  9. 9

    一个函数应该信任另一个函数的程度

  10. 10

    any()函数检查两个TRUE而不是一个

  11. 11

    仅将参数传递给另一个函数的函数是否应该对该参数进行类型检查?

  12. 12

    两个函数返回一个在第三函数中使用的值

  13. 13

    在一个函数中返回两个变量

  14. 14

    jQuery中的一个div两个函数

  15. 15

    在一个函数中返回两个变量

  16. 16

    两个对象,一个“不是函数”

  17. 17

    一个函数调用中的两个参数

  18. 18

    从两个不同的页面调用一个函数

  19. 19

    一个仅将参数传递给另一个函数的函数是否应该对该参数进行类型检查?

  20. 20

    函数参数中的int * vs int [] vs int(*)[]。我应该使用哪一个?

  21. 21

    我应该如何包括函数返回一个单声道时使用Mono.zipWith?

  22. 22

    应该使用Function构造函数形成一个闭包吗?

  23. 23

    在两个控制器中调用一个函数 - AngularJS 1.x

  24. 24

    应该如何用Chai测试某些东西是否应该是一个函数

  25. 25

    我应该使用一个HTTP请求来检查是否可以执行某个操作,然后使用另一个HTTP请求来执行该操作,还是应该将其捆绑到一个请求中?

  26. 26

    一行两个 div,只有一个应该缩放

  27. 27

    我应该将一个简单的函数重写为一个类吗?

  28. 28

    将一个监听器添加到Promise之后,我应该使用原始的Promise还是新的Promise?

  29. 29

    将一个监听器添加到Promise之后,我应该使用原始的Promise还是新的Promise?

热门标签

归档