Cours analyse et conception UML, tutoriel & guide de travaux pratiques en pdf.
Notion d’interface
•Les interfaces déclarent des opérations (et des propriétés*) publiques offertes par une classe •Déclaration => elles ne sont pas instanciables ! •≈classes abstraites pour lesquelles toutesles opérations sont abstraites •Une classe qui réalise une interface doit présenter les méthodes publiques qui se conforment àla spécification de l’interface •Une classe peut posséder plusieurs interfaces (regroupement de services liés)
* A property declared on an Interface does not necessarily implythat there will be such a property on a classifier realizing that Interface (e.g., it may be realized by equivalent get and set operations).
Interface fournie
•Expose un ensemble de services mis àdisposition des clients d’une classe •Permet d’établir un faible couplage entre le client et la classe qui implémente réellement les services fournis •Composition propre des classes du système •Favorise la substituabilitédes classes pour l’implémentation des différents services (maintenance, test, adaptabilité, …)
Interface requise
•Duale àla notion d’interface fournie •Déclaration explicite des dépendances fonctionnelles requises par une classe pour fonctionner •Permet de contenir la cohésion d’une classe pour en favoriser la réutilisation.
Principe de conception OO
•[GoF95] Programming to an Interface, not an Implementation •Deux avantages –les classes clientes n’ont pas besoin de connaître le type spécifique des objets qu’elles manipulent du moment qu’ils se conforment aux interface requises –les classes clientes ne reposent pas sur les classes implémentant ces objets mais seulement sur la définition de leurs interfaces
Interface «volant», des objets non identifiés ?
•Le simulateur de vol est liéàl’interface «volant»afin de pouvoir modifier/ajouter/supprimer facilement les objets que le simulateur peut faire voler. •Cependant il lui faut instancier des classes d’objets volants (i.e. faire des new() ) : on perd alors l’intérêt de l’interface puisque la création des objets volants se fait à l’intérieur du simulateur.