首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编程技巧:将对象或值作为方法参数传递

编程技巧:将对象或值作为方法参数传递
EN

Stack Overflow用户
提问于 2010-11-11 10:40:31
回答 9查看 1.6K关注 0票数 4

传递参数在日常编程中很常见,但我们应该将参数作为对象还是值传递?

(A)

代码语言:javascript
复制
public boolean isGreaterThanZero(Payment object) {
    if (object.getAmount() > 0) {
       return true;
    }

    return false;
}

(B)

代码语言:javascript
复制
public boolean isGreaterThanZero(int amount) {
    if (amount > 0) {
       return true;
    }

    return false;
}
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-11-11 10:58:06

这两个都不是。

使用适当的OOP,您可以在Payment对象上使用isGreaterThanZero(),即:

代码语言:javascript
复制
class Payment {
  int amount
  public boolean isGreaterThanZero() {
    return amount > 0
  }
}

然后:

代码语言:javascript
复制
Payment payment
boolean flag = payment.isGreaterThanZero()
票数 8
EN

Stack Overflow用户

发布于 2010-11-11 11:04:44

假设您询问的是参数传递,而不是对象设计...

在设计方法时,您需要考虑许多方面。

  1. 这个方法可以用在其他地方吗?在您的示例中,答案可能是肯定的-它可以判断任何int是否大于零-在这种情况下(B)更有用。
  2. 如果该方法需要多个参数并且特定于代码中的某个对象,则传递该对象。

在有意义的地方,尝试减少代码中模块之间的依赖关系。在您的示例中,(A)在Payment对象上引入了不必要的依赖关系。但是,如果该方法需要Payment对象的两个成员变量(因为它特定于某个支付),那么一定要传递一个Payment对象作为参数。

票数 3
EN

Stack Overflow用户

发布于 2010-11-11 11:02:43

这是一个人为的例子,但如果这是接收类与付款的唯一交互,我会为了解耦而使用该值。创建多余的类依赖关系是没有意义的。

编辑: Marcel和我在同一时间输入相同的东西。:)这个。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4150961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档