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



所以,假设我在离散数学的世界里工作,我有一些函数

CCD_ 1。

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

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

我本可以:

  • CCD_ 7
  • CCD_ 8
  • CCD_ 9
  • CCD_ 10
  • f: A x B x C -> D1

都是合理的选择,不是吗?

在这种情况下,对称性是否应该要求我实现所有这些选项?

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

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

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

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

你的最后一个建议,使用静态函数也是可以想象的。这种方法经常用于不同语言的数学库(例如Java:数学类)

最新更新