首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪些对象拥有该方法?离散数学转换

哪些对象拥有该方法?离散数学转换
EN

Stack Overflow用户
提问于 2017-01-30 19:35:06
回答 1查看 50关注 0票数 0

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

f: A x B x C -> D

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

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

我本可以:

  • d = a.f_1(b,c)
  • d = b.f_2(a,c)
  • d = c.f_3(a,b)
  • d = new ObjD(a,b,c)
  • d = ZStatic.f_4(a,b,c)

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

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

我倾向于完全避免构造函数方法,但除此之外,我不知道除了假定本质上是任意的信息之外,还可以取得什么进展。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-30 21:57:53

要给出最好的答案,重要的是要知道你使用的是哪种变量。

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

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

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

https://stackoverflow.com/questions/41944034

复制
相关文章

相似问题

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