|
|
6.8 Encapsulation :
visibilité / accessibilité des attributs et des opérations
- Doit-on voir / accéder à tous les attributs ou à
toutes les opérations d’un objet ? Non
- La classe définit ce qui est visible / accessible
- C’est le principe de l’encapsulation
- Un objet complexe ne peut être utilisé qu’au travers
de ce qui est accessible
- Analogie :
- Il n’est possible d’utiliser une voiture
qu’à travers son volant, son frein, son accélérateur,
etc.
- L’accès au carburateur est impossible sauf par les méthodes qui le
font de manière cohérente (méthode accélérer de
l’accélérateur)
précédent suivant
La conception des classes s’appuie sur les concepts de
l’orientation objet. Dans cette section, nous nous servons de la
conception pour compléter nos connaissances sur ces concepts de
l’orientation objet. Celui que nous étudions dans cette diapositive et
les suivantes est l’encapsulation : tout concepteur de classe choisit les
attributs et les opérations qu’il désire rendre
visibles / accessibles de toutes les autres classes, ou
visibles / accessibles seulement des classes enfants, ou encore non
visibles / non accessibles.
En guise d’autre exemple que celui de la diapositive,
prenons un exemple informatique du module d’algorithmique procédurale
CSC3002. Pour la conception de listes chaînées, vous utilisez une structure de
données avec des pointeurs qui permettent de connaître l’élément
précédant et l’élément suivant dans liste, ainsi que des pointeurs pour
connaître le premier élément et le dernier élément de la liste. Ces derniers
pointeurs permettent de manipuler plus facilement la liste pour
ajouter / supprimer un élément au début / à la fin de la
liste. Après la conception des procédures pour ces manipulations, vous
souhaitez que les utilisateurs n’utilisent ni le pointeur sur le premier
ni le pointeur sur le dernier élément, mais vos procédures. En quelque sorte,
vous souhaitez que ces deux pointeurs soient non visibles / non
accessibles.
La propriété d’encapsulation est très importante car en
choisissant quels attributs et quelles opérations sont visibles de tous, le
concepteur définit l’API (en anglais, Application Programming Interface) du système. Une fois qu’une API est
publiée, des milliers d’utilisateurs en prennent connaissance,
l’utilisent, et donc en dépendent. Faire ensuite évoluer une API est très
compliqué. Par conséquent, ce travail est critique pour l’adoption du
système par les autres concepteurs et pour la pérennité du projet.
Cf. le glossaire pour la définition du terme
« visibilité ».
D. Conan, C. Taconet, C. Bac,
Télécom SudParis, CSC 4002, Octobre 2015
|
|