Previous: initialize Up: Ajouter des méthodes à une classe Next: printOn:, printString

protocole accessing

Le protocole accessing regroupe toutes les méthodes qui permettent d'accéder aux variables d'instances. Normalement, ces méthodes doivent être les seules à permettre d'accéder directement à ces variables d'instances. Toutes les autres méthodes, si elle veulent accéder aux objets contenus dans les variables d'instances, doivent passer par les méthodes du protocole accessing.

L'implantation de ces méthodes a la forme générale :

 
varInst
   "Retourne la variable d'instance varInst"
   ^varInst

Et pour la mise à jour des variables d'instance :

 
varInst: anObject
   "Met à jour la variable d'instance varInst"
   varInst := anObject

Les accès à varInst seront effectués ultérieurement par l'intermédiaire du message varInst. L'objet lui-même fera référence à ces variables d'instance par l'évaluation de self varInst.

L'accès aux variables d'instance peut être direct, comme dans la méthode d'accès, plutôt que par un envoi de message. Cependant une telle technique, si elle est plus efficace de quelques microsecondes et constitue donc, dans certains cas, une optimisation utile, diminue la réutilisabilité de la classe dans le cas où cette dernière est rafinée par une sous-classe. En effet, en utilisant un accès par envoi de message, il sera possible de modifier simplement la méthode, en surchargeant la méthode d'accès, pour altérer le comportement alors que par accès direct, le comportement consistera toujours à accéder à la variable d'instance, ce qui, pour certaines applications, peut vouloir être modifié. Dans un souci de réutilisabilité, on limitera donc au maximum les accès directs aux variables d'instance.

beugnard@enst-bretagne.fr