Si je le module Ruby suivant qui implémente une interface particulière (apply
dans ce cas)Cette utilisation du polymorphisme est-elle trompeuse et par conséquent mauvaise conception?
module FooApplier
def apply
foo
end
end
... et tous les autres « Applicateurs » sont des classes, pas des modules, est-il trompeur d'autres ingénieurs de passer aux récepteurs qui attendent l'interface apply
? Supposons que l'application utilisant FooApplier
fonctionne parfaitement bien, mais supposons également qu'un autre ingénieur n'a pas pris le temps de déverser tous les derniers octets de mon code. S'ils décident d'envoyer quelque chose comme .new
au FooApplier
qui induit d'une certaine manière un bug subtil, est-ce le fardeau de ma conception, ou l'ingénieur pour faire des suppositions et négliger de lire mon code?