Current
Un article de SmartEiffelWiki, l'encyclopéde libre.
Ce que vous devez savoir sur Current
Le modèle objet est fondamental en Eiffel. Toutes les instructions écritent en Eiffel le sont toujours dans le contexte d'un objet donné, l'objet qui est concerné par la méthode active, l'objet courant, noté tout simplement Current.
En effet, vous l'avez peut être déjà remarqué, le code Eiffel est toujours écrit à l'intérieur d'une classe donnée. Le code est soit dans une méthode qui est obligatoirement dans une classe donnée. Ou bien, quand le code n'est pas dans une méthode, c'est qu'il est dans l'invariant d'une classe donnée, la classe de l'objet courant, la classe de Current.
Ainsi, dès que du code Eiffel s'exécute, il existe toujours un objet Current accessible. Cette façon d'inciter à organiser son code autour d'un objet particulier constitue un des points fort d'Eiffel, un point fondamental de l'approche objet.
Parmi les choses qu'il faut garder à l'esprit à propos de Current, c'est que Current désigne toujours un objet. Dit autrement, Current n'est jamais Void. En fait, un autre point essentiel d'Eiffel, c'est qu'il n'est pas possible de déclencher une méthode si l'on ne dispose pas d'un objet. Vous le savez si vous avez déjà lu la partie sur la liaison dynamique, c'est la nature même de l'objet, son type dynamique, qui va permettre de sélectionner le code le plus approprié. Ainsi, non seulement Current désigne toujours un objet, mais en plus le code en cours d'exécution est le code qui est le mieux adapté pour s'occuper de Current.
Il va sans dire, compte tenu de ce qui vient d'être énoncé, qu'il serait pour le moins hasardeux de pouvoir changer, durant le cours de l'exécution d'une méthode, la nature même de Current. Imaginez que l'on soit par exemple en train d'exécuter une méthode de la classe POINT et que l'on substitue le POINT courant, Current, par un objet de la classe TRIANGLE ! Fort heureusement, ceci n'est pas possible et, afin d'éviter radicalement toutes possibilités de chaos, il est strictement interdit de changer la valeur de Current, c'est à dire d'utiliser Current à gauche du signe d'affectation.
Pour terminer cette section consacrée à Current, signalons que la notation équivalente en Smaltalk est self et que la notion appelée this en C++ et en Java est similaire.





