Projet : Amélioration des objets cartes
Prérequis :
Une fois la carte créée, il ne faudrait plus pouvoir la modifier. Or pour l'instant on a directement accès aux attributs, donc rien n'interdit de le faire.
Pour pallier ça, il suffit de définir un accesseur sans mutateur pour les 2 attributs valeur et couleur. Cela permet :
- d'accéder aux attribut
- une tentative de modification produira une erreur
On a alors créé un value object c'est à dire un objet non mutable, comme un entier ou une chaîne de caractères en python.
En utilisant @property
, créez et testez des accesseurs pour les attributs valeur et couleur.
Si on a le choix :
Méthode de conception
Lorsque l'on crée un objet, si on a pas de raison particulière de le rendre modifiable on crée un value object. Cela évite les effets de bords (et rend la programmation concurrente et parallèle bien plus simple).