Qui va comparer deux adresses juste sur le nom de la rue ? // Elle porte le même nom, alors elle est égale. // Xenos, tu vas toujours trop loin
Je vous parie que sur le long terme, dans quelques années, vous allez avoir besoin de comparer deux rues de deux villes, vous allez être content de voir qu'il existe une classe "Rue" avec une méthode "isEquals()", et vous allez vous arracher les cheveux quand il faudra faire en sorte que deux rues de même nom de deux villes ne soient pas considérées comme identiques. A moins qu'on ne puisse me proposer une méthode non-destructive des API existantes et qui ferait cette comparaison.
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.
@srm Ca compare quoi, le "==" en fin de ton Scala? Les valeurs des membres? Ou le résultat du toString?
Parce que je me demande ce que ceci donnerait:
Ah, l'injection... ^^
Je vous parie que sur le long terme, dans quelques années, vous allez avoir besoin de comparer deux rues de deux villes, vous allez être content de voir qu'il existe une classe "Rue" avec une méthode "isEquals()", et vous allez vous arracher les cheveux quand il faudra faire en sorte que deux rues de même nom de deux villes ne soient pas considérées comme identiques. A moins qu'on ne puisse me proposer une méthode non-destructive des API existantes et qui ferait cette comparaison.
Citation :Pour que ce soit plus propre, il faudrait que la méthode isEqual() de Rue ne puisse être appelée que par un objet Adresse, ça je suis d'accord.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).
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.
@srm Ca compare quoi, le "==" en fin de ton Scala? Les valeurs des membres? Ou le résultat du toString?
Parce que je me demande ce que ceci donnerait:
val adresse_de_jean = Adresse(Numero(2), Rue("Jean André"), Ville("Bouzy Foissons"))
val adresse_de_bob = Adresse(Numero(2), Rue("Jean Adré Bouzy"), Ville("Foissons"))
if (adresse_de_bob == adresse_de_jean) {
println("Adresses identiques ?!");
Ah, l'injection... ^^