|
|
6.8.1 Encapsulation avec le concept de
Visibilité
- Les attributs sont en général inaccessibles (secrets). Ils
sont alors qualifiés de :
- « private » :
notation UML « - »
- Lecture ou modification uniquement possibles au travers des
opérations
(p.ex. les accesseurs : getAdresse(),
setAdresse())
- Les opérations sont en général accessibles par toutes les
classes. Elles sont alors qualifiées de :
- « public » :
notation UML « + »
- Certains attributs doivent être accessibles par les classes
enfants et inaccessibles aux autres classes. Ils sont alors qualifiés de :
- « protected » :
notation UML « # »
- Certaines opérations peuvent cependant être privées
(factorisation interne de traitements) et certains attributs peuvent être
publics (même si cela est non souhaitable selon le principe
d’encapsulation)
précédent suivant
Pour respecter le principe d’encapsulation, les
attributs sont privés (préfixés par le signe « - ») et les opérations sont publiques (préfixées par le
signe « + »). Les opérations
nécessaires au fonctionnement interne des classes sont elles-aussi privées.
Dans le cas de la généralisation spécialisation, le travail à
effectuer est de vérifier la visibilité des attributs pour les classes enfants.
Si un attribut privé de la classe parente doit être « présent » dans
ses classes enfants (c’est-à-dire doit être accessible par les classes
enfants), ou si un attribut n’est accédé que par ses classes enfants, cet
attribut possède la visibilité « protégée » (attribut préfixé par
« # » dans la classe parente).
Dans le cours sur la programmation orientée objet, nous
verrons que certains languages comme Java introduisent d’autres types de
visibilité. Par exemple, le langage Java ajoute aux trois visibilités étudiées
ici (privée, protégée, publique) la visibilité « paquetage ». Dans ce
cours sur la modélisation orientée objet, nous ignorons ces autres types de
visibilité.
D. Conan, C. Taconet, C. Bac,
Télécom SudParis, CSC 4002, Octobre 2015
|
|