Je lisais l'introduction d'Oracle aux concepts de POO et je suis tombé sur cette description:
Les objets du monde réel partagent deux caractéristiques: ils ont tous un état et un comportement. Les chiens ont un état (nom, couleur, race, faim) et un comportement (aboyer, aller chercher, remuer la queue). Les objets logiciels sont conceptuellement similaires aux objets du monde réel: ils se composent également de l'état et du comportement associé.
Mon problème avec ce passage est que lors de la description de l' état, ses attributs de mixage s'y trouvent également. Par exemple, le nom et la couleur d'un chien sont ses attributs, tandis qu'il est affamé ou thursty sont ses états.
Donc, à mon avis, il est plus précis de diviser les caractéristiques des objets en trois parties: les attributs, les états et les comportements .
Bien sûr, en traduisant cela dans un langage de programmation, je peux voir que la partition triple devient double, car les attributs et les états seront stockés dans des champs / variables, tandis que les comportements seront stockés dans des méthodes / fonctions.
Mais conceptuellement parlant, il est plus logique de séparer les 3 choses.
Voici un autre exemple: considérons une lampe. Dire que la taille de la lampe et le fait qu'elle soit allumée ou non sont des états à mon avis. La taille de la lampe est un attribut, pas un état, tandis qu'elle est allumée ou éteinte est un état.
Ou ai-je raté quelque chose?