Table des matières
Parfois, il arrive que lorsque nous réalisons des diagrammes sur des systèmes étendus, nous nous rendions compte que certaines classes n'appartiennent pas à la classe principale, cependant, nous pouvons avoir besoin de certaines opérations de ladite classe principale, ce qui nous laisse plusieurs options ouvertes.L'une de ces options est un Interface, ce concept nous permet de spécifier les opérations dans une classe et comment les présenter aux autres.
Interface
La Interface permet de spécifier un ensemble d'opérations en classe qui peut être utilisé par d'autres, il est représenté de la même manière qu'une classe à l'aide d'un rectangle, cependant il diffère d'une classe en ce qu'il n'aura pas d'attributs car ce ne sera qu'un ensemble d'opérations.
Pour distinguer un Interface d'une classe avec ses attributs cachés, il faut utiliser le mot interface comme stéréotype, ou simplement placer un je devant le nom de cette interface.
Voyons l'exemple suivant de la façon d'implémenter une interface dans notre diagramme :
Comme nous pouvons le voir, la mise en œuvre d'une interface n'est pas si complexe.
Nous avons également un formulaire omis pour être capable de rendre l'interface À l'intérieur d'une classe, nous pouvons voir ce formulaire dans l'image suivante :
La visibilité correspond à la manière dont nous montrons les opérations et les attributs d'une classe, il y a certains processus qui ne doivent pas être montrés aux autres classes, nous avons donc décidé de les rendre privés, cela remplit une des conditions de l'orientation objet qui est la encapsulation.
Nous avons 3 niveaux de visibilité qui sont les suivants :
- Publique: cela peut être vu depuis n'importe quelle autre classe et pour le spécifier nous le délimitons avec un signe +.
- Protégé: cela ne peut être vu que par la classe d'origine et tous ceux qui en héritent, nous le marquons avec le #.
- Privé: Seule la classe d'origine peut le voir et il est délimité par un -.
Voyons l'exemple suivant sur la façon de spécifier la visibilité des opérations et des attributs d'une classe :