代码之家  ›  专栏  ›  技术社区  ›  Hai Minh Nguyen

必须返回多个对象是否意味着设计不好?

  •  3
  • Hai Minh Nguyen  · 技术社区  · 14 年前

    有时我在Java中遇到这种情况时,试图使用不可变对象。在Java中,一个方法不能返回多个对象,比如 return a, b, c . 返回不同类型的对象数组或包装器对象会使代码看起来很难看。因此,我必须将可变对象传递给方法,并让它更改这些对象的状态。所以一般来说,在编程中,必须返回多个对象是设计不好的标志吗?

    4 回复  |  直到 14 年前
        1
  •  2
  •   paxdiablo    14 年前

    不,我不相信。能够用Python返回元组实际上非常方便。

    但如果你需要全方位 一些 做这件事的方式。只要API契约指定发生了什么,我就认为按照您建议的方式来做没有问题。

        2
  •  3
  •   cdhowie    14 年前

    不总是这样。返回某种“OperationResult”对象并不少见,该对象包含所执行操作的所有信息。

        3
  •  0
  •   akd5446    14 年前

    正如其他人所说,这取决于你在做什么,尽管如果你能让它返回一个“价值”,那么它会更好。

    但是,您可以创建一个完整的类,该类包含那些使代码更容易理解的值。

        4
  •  0
  •   Damien    14 年前

    在Java中,返回 wrapper object 对我来说似乎很常见,尤其是在 Transfer Object 模式,但当它有意义时,即使是本地调用。

    修改参数也是一种非常常见的技术。您可以在JDK本身中看到一些示例,比如 Collections.sort(List list) InputStream.read(byte[]) .

    public void updateTrackingFields(Trackable trackable, String user) {
      trackable.setChangedBy(user);
      trackable.setChangedTime(System.currentTimeMillis());
    }
    

    所以,我相信还有比这两个更糟糕的设计决策。

    编辑:添加了持久对象示例。