gpt4 book ai didi

java - 自定义对象中的方法应该具有破坏性吗?

转载 作者:行者123 更新时间:2023-12-02 08:45:16 25 4
gpt4 key购买 nike

我必须实现 Java.Polynomial 作为学校作业。部分方法有add(polynomial)multiply(polynomial)等。

在类似的情况下

p.add(q); // computes p + q

返回 void 并将多项式之和保留在 p 中是否更好?或者返回一个多项式并保持 p 的前值不变更好?

我的直觉告诉我应该执行以下操作

  • 将 p.add(q) 实现为“破坏性”方法...它将 q 添加到 p 的值并将总和存储在 p 中
  • 还实现了一个静态方法 Polynomial.add(p,q),它返回多项式的总和。

你觉得怎么样?

最佳答案

我个人非常喜欢不可变类型。我会编写 p.plus(q) 而不是 p.add(q) 并使其返回一个新的多项式。不变性有很多好处,不仅在线程安全方面(这听起来在这种情况下不会成为问题),而且在推理代码方面也如此。如果您知道一旦您存储了对某个对象的引用,就无法更改您脚下对象的内容,那么预测将要发生的事情就会容易得多。

关于java - 自定义对象中的方法应该具有破坏性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/628049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com