02-09-2015, 05:07 PM
niahoo a écrit :Enfin, les numéros de rue sont des String.Pas compris
edit: les case class qui n'ont qu'un seul membre ont une fonction toString définie automatiquement qui output ce membre ?
Xenos a écrit :Nope, c'est le principe de l'OO: n'importe qui/quoi peut demander un truc à une classe (aka appeler la méthode de l'objet). Si tu commences à vouloir restreindre "qui appelle la méthode", tu vas dans le mur (en tous cas, en PHP). Accessoirement, tu t'assoies sur la combinatoire (le truc génial là, qui fait qu'avec 10 classes t'as 100 assemblages possibles).Je crois que tu n'as pas compris le sens : Rue pourrait être une classe enfant d'Adresse, et sa méthode isEqual() passerait en protected. Ainsi, seule Adresse peut appeler cette méthode. Ca créé quand même du couplage mais nécessaire (comme dans l'exemple actuel).
Si une méthode de classe A n'a vocation à être appelée que par une seule classe B, alors A est trop fortement couplée à B, et les deux classes ne devraient pas être séparées.