Chapitre 6
Les dépendances

Dans les chapitres précédents nous avons fait connaissance d’un bon ensemble des caractéristiques saillantes de SMALLTALK en général et de SQUEAK en particulier. Nous avons vu comment fonctionnent les transmissions de messages, l’héritage statique et dynamique, les interfaces graphiques propres à SQUEAK: les morphs, et, dans les programmes, nous avons pu voir que leur déroulement est une suite d’échanges de messages entre des objets.

Ces échanges de méssages se faisaient toujours d’une manière explicite: un objet bien connu transmettait un message à un autre objet aussi bien connu. De temps à autre, il peut être intéressant de pouvoir transmettre des messages non pas à un seul objet, mais à tout un ensemble d’objets non nommés, des sortes de receveurs implicites, de manière à faire réagir chacun des objets receveurs. Une telle transmission de message implicite peut être particulièrement utile:

  1. quand un objet possède deux aspects, l’un dépendant de l’autre, et la modification d’un des aspects implique la modification de l’autre;
  2. quand un changement d’état d’un objet demande également le changement d’état d’autres objets, et qu’on ne sait pas combien d’autres objets ont besoin de changer d’état en correspondance;
  3. quand un objet doit être capable de livrer des informations à d’autres objets sans savoir excactement qui sont ces autres objets.

Dans ce chapitre nous allons explorer une des caractéristiques fondamentales de la programmation objets proposée en SMALLTALK: l’utilisation d’un mécanisme de dépendances, qui est à la base de l’envoi de messages à des objets non explicitement nommés.

Ce mécanisme de dépendances permet d’exprimer des relations entre un objet particulier et plusieurs autres objets de manière telle que si l’objet change (ou pense avoir changé), il peut – quasi automatiquement – en informer tous les objets qui dépendent de lui pour qu’ils puissent se mettre à jour en correspondance avec ce changement.

C’est un beau mécanisme permettant la collaboration entre plusieurs objets ou acteurs.


 6.1 Les bases du mécanisme de dépendances
  6.1.1 Ajout et élimination de dépendances
  6.1.2 Les méthodes de gestion des dépendances
  6.1.3 Un premier test de l’utilisation des dépendances
  6.1.4 Un deuxième test de l’utilisation des dépendances
 6.2 Programmation d’une calculatrice
  6.2.1 Les touches
  6.2.2 La calculatrice
  6.2.3 Développement d’une interface utilisateur graphique
  6.2.4 Construction de l’interface entre vues et modèles
  6.2.5 Une calculatrice infixe
 6.3 Exercices
 6.4 Une calculatrice KCalc
  6.4.1 Description de KCalc
  6.4.2 Implémentation de KCalc
 6.5 Exercices