Donc, supposons que je travaille dans le monde des mathématiques discrètes et j'ai une certaine fonctionQuels objets possèdent la méthode? Traduit de mathématiques discrètes
f: A x B x C -> D
. Avec cette fonction, je peux effectuer des calculs comme f(a,b,c) = d
. (Je suis vague ici volontairement).
Supposons maintenant que je souhaite implémenter ce calcul explicitement dans un langage de programmation OO moderne. Donc, j'initialiser une variable appelée a
de la classe ClassA
et ainsi de suite avec b
et c
. Alors quoi? Quel objet doit posséder le calcul? Ou pourrait-il être un initialiseur. Serait-ce une fonction statique?
je pouvais avoir:
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)
tout aussi plausible options, je ne pouvais pas? Étant donné la situation, est-ce que la symétrie de la demande devrait implémenter toutes ces options? Je préférerais éviter complètement l'approche du constructeur, mais au-delà je ne sais pas ce que l'on pourrait faire d'autre que l'hypothèse d'une information essentiellement arbitraire.
Alors, quel objet devrait posséder la fonction $ f $, le cas échéant?