Autre exemple, que faire si un set vient détruire les invariants d'une classe ? Surtout s'il est possible de les rétablir silencieusement et sans soucis ? Je suis tombé récemment pour une démo sur une classe Fraction. Elle avait comme invariants qu'elle est tout le temps gardée en mémoire sous forme simplifiée, et que le dénominateur est tout le temps positif. De plus, elle étant non invariable.
Si une fraction vaut 1/2, que faire sur un setNumerateur(2) ? Rompre l'invariant ? Le conserver avec une fraction valant 1/1 ?
Et si elle fait 2/1, que faire si on fait un setDenominateur(-2) ? Lever une erreur ? Rompre l'invariant ? Ou bien générer la fraction -1/1 ?
Trouver d'autres noms que setNumerateur ? Pourquoi pas, mais lesquels ?
Partager