Oop 哪些对象拥有该方法?从离散数学翻译
假设我在离散数学领域工作,我有一些函数Oop 哪些对象拥有该方法?从离散数学翻译,oop,discrete-mathematics,Oop,Discrete Mathematics,假设我在离散数学领域工作,我有一些函数 f:A x B x C->D 有了这个函数,我可以进行类似f(a,b,c)=d的计算。(我在这里故意含糊其辞) 现在假设我想用一些现代OO编程语言显式地实现这个计算。因此,我初始化了一个名为a的变量,该变量属于ClassA类,依此类推,使用b和c。然后呢?哪个对象应该拥有计算?或者它可能是一个初始值设定项。它可能是一个静态函数吗 我本可以: d=a.f_1(b,c) d=b.f_2(a,c) d=c.f_3(a,b) d=新的ObjD(a、b、c) d=
f:A x B x C->D
有了这个函数,我可以进行类似f(a,b,c)=d的计算。(我在这里故意含糊其辞)
现在假设我想用一些现代OO编程语言显式地实现这个计算。因此,我初始化了一个名为a
的变量,该变量属于ClassA
类,依此类推,使用b
和c
。然后呢?哪个对象应该拥有计算?或者它可能是一个初始值设定项。它可能是一个静态函数吗
我本可以:
d=a.f_1(b,c)
d=b.f_2(a,c)
d=c.f_3(a,b)
d=新的ObjD(a、b、c)
d=ZStatic.f_4(a,b,c)
所有这些都是合理的选择,不是吗
在这种情况下,我应该实施所有这些选项吗
我宁愿完全避免构造函数方法,但除此之外,我不知道除了基本上任意信息的假设之外还能取得什么进展
那么,哪个对象应该拥有函数$f$,如果有的话?要给出最佳答案,重要的是要知道您使用的变量类型
oop中一个非常重要的指标是实现高内聚性。内聚性是模块中的元素在一起的程度。如果变量a、b和c都属于特定的上下文,那么最好将它们放在一个类中。如果它们在一个类中,您不必担心哪个类应该拥有计算(您的第四个解决方案)
您最后的建议,使用静态函数也是可以想象的。这种方法常用于不同语言(如Java:)的数学图书馆。要给出最佳答案,重要的是要知道您使用的变量类型
oop中一个非常重要的指标是实现高内聚性。内聚性是模块中的元素在一起的程度。如果变量a、b和c都属于特定的上下文,那么最好将它们放在一个类中。如果它们在一个类中,您不必担心哪个类应该拥有计算(您的第四个解决方案)
您最后的建议,使用静态函数也是可以想象的。这种方法常用于不同语言的数学图书馆(如Java:)