C'est pas franchement une bonne pratique de tout foutre en public Candystand (encapsulation et responsabilités des objets + contrôle et maintenance facilités via l'utilisation de setter).
De plus, cela ne répond pas à la problématique de Cainzer, son professeur souhaitant manifestement un changement d'architecture.
Bon... Cainzer, sans avoir aucun contexte ni aucune information, ça va être très dur de t'aider.
J'imagine que vous avez un logiciel type "jeu de la vie" ou "pokémon" et que ce que ton professeur souhaite, c'est que la créature sache elle-même quelle est son évolution via l'utilisation d'une interface "Evolve".
Si tu pouvais donner du contexte, ce sera très très très très appréciés.
La bonne pratique est de passer par des setter (ou updater, dans le cas de changements plus complexes).