哪些对象拥有该方法?从离散数学翻译

Which objects own the method? Translating from discrete math

所以,假设我在离散数学领域工作并且我有一些函数

f: A x B x C -> D.

有了这个函数,我可以进行类似 f(a,b,c) = d 的计算。 (我在这里故意含糊不清)。

现在假设我想用一些现代 OO 编程语言显式地实现这个计算。所以我用 bc 初始化了一个名为 a 的 class ClassA 等变量。然后呢?哪个对象应该 拥有 计算?或者它可以是一个初始值设定项。它可以是静态函数吗?

我可以:

所有这些都是合理的选择,我不能吗?

鉴于这种情况,对称性是否应该要求我实施所有这些选项?

我宁愿完全避免构造函数方法,但除此之外,我不知道除了基本上任意信息的假设之外还能取得什么进展。

那么,什么对象应该拥有函数 $f$(如果有的话)?

要给出最佳答案,了解您使用的变量类型很重要。

oop 中一个非常重要的指标是实现高内聚。内聚是模块的元素属于在一起的程度。如果您的变量 a、b 和 c 在特定上下文中属于一起,那么最好将它们放在一个 class 中。如果它们在一个 class 中,您不必担心,哪个 class 应该拥有计算(您的第四个解决方案)。

你最后的建议,用静态函数也是可以的。这种方法经常用于不同语言的数学库中(例如 Java: Math class