En Ruby, chaque classe devrait maintenir son propre compteur d'instances, ce qui peut être réalisé en utilisant des variables d'instance au niveau de la classe. Les variables d'instance au niveau de la classe permettent à différents niveaux d'une hiérarchie de classe de maintenir leurs propres compteurs. Les variables de classe, d'un autre côté, sont partagées entre toutes les instances et les sous-classes, ce qui conduit à des résultats inattendus. Pour mettre en œuvre un compteur d'instances, une variable d'instance au niveau de la classe est initialisée, et un setter privé est défini pour s'assurer qu'il ne peut pas être modifié à partir de l'extérieur de la hiérarchie de classe est créée pour incrémenter le compteur d'instances en toute sécurité sans exposer le setter privé. Lorsqu'une instance d'une classe est créée, elle incrémente le compteur pour cette classe uniquement, maintenant les compteurs des autres classes indépendants. En utilisant des variables d'instance au niveau de la classe et en encapsulant leurs setters privés, chaque classe peut maintenir son propre compteur d'instances sans interférence avec les sous-classes ou les appels externes. Cette approche permet de concevoir des hiérarchies de classe propres et efficaces. Il n'est pas recommandé d'utiliser des variables de classe à la place des variables d'instance au niveau de la classe, car elles partagent l'état à travers la hiérarchie, ce qui conduit à des bugs. Les setters privés sont typiques lors de la maîtrise de la manipulation de certaines valeurs à l'intérieur d'une classe ou d'un module.
dev.to
How to Implement Instance Counters with Class-Level Variables in Ruby?
Create attached notes ...