Outils pour utilisateurs

Outils du site


java:coo

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
java:coo [2020/08/27 12:04] – [Principes et bonnes pratiques de conception] brunojava:coo [2023/03/23 22:38] (Version actuelle) bruno
Ligne 8: Ligne 8:
     - une dernière développant l'idée de nommage commun du polymorphisme ad-hoc qui consiste à garantir la substitution d'objets, classiquement en java en utilisant une interface pour déclarer un comportement et en faisant implémenter cette interface par les classes concernées:{{ :java:principes:polym-avance.png?400 |Utilisation d'une interface Reparable avec une méthode reparer, implémentée par Chaise et Autoroute}}     - une dernière développant l'idée de nommage commun du polymorphisme ad-hoc qui consiste à garantir la substitution d'objets, classiquement en java en utilisant une interface pour déclarer un comportement et en faisant implémenter cette interface par les classes concernées:{{ :java:principes:polym-avance.png?400 |Utilisation d'une interface Reparable avec une méthode reparer, implémentée par Chaise et Autoroute}}
   - **l'héritage** ou la **spécialisation**:  possibilité d'exprimer le fait qu'un concept (une classe) **est un** autre concept (plus exactement **est une** spécialisation d'une abstraction de plus haut niveau) et donc de bénéficier (hériter) de ce qui a été définit dans le concept parent;{{ :java:principes:heritage.png?100 |Le concept Chat est une spécialisation du concept Mammifère, lui même spécialisation de Animal }}   - **l'héritage** ou la **spécialisation**:  possibilité d'exprimer le fait qu'un concept (une classe) **est un** autre concept (plus exactement **est une** spécialisation d'une abstraction de plus haut niveau) et donc de bénéficier (hériter) de ce qui a été définit dans le concept parent;{{ :java:principes:heritage.png?100 |Le concept Chat est une spécialisation du concept Mammifère, lui même spécialisation de Animal }}
-  - **l'encapsulation**: offrir la possibilité à un programme de n'exposer qu'une partie du code qu'il utilise en masquant le fonctionnement interne d'un objet. Une première manière simple de garantir l'encapsulation est de restreindre la visibilité des attributs en les déclarant **private** et en utilisant des contrôles d'accès **lorsque cela est nécessaire** via les mutateurs (setters) et les accesseurs (getters); plus généralement, **//l'encapsulation ne se limite à la simple utilisation du mot-clef// private**, mais concerne tout ce qui contribue à masquer les fonctionnement interne et protéger les attributs de mutations par des tiers (par exemple, en clonant une référence dans un accesseur, ou en ne donnant pas les types concrets mais des super-types plus abstraits).+  - **l'encapsulation**: offrir la possibilité à un programme de n'exposer qu'une partie du code qu'il utilise en masquant le fonctionnement interne d'un objet. Une première manière simple de garantir l'encapsulation est de restreindre la visibilité des attributs en les déclarant **private** et en utilisant des contrôles d'accès **lorsque cela est nécessaire** via les mutateurs (setters) et les accesseurs (getters); plus généralement, **//l'encapsulation ne se limite à la simple utilisation du mot-clef// private**, mais concerne tout ce qui contribue à masquer les fonctionnements internes et protéger les attributs de mutations par des tiers (par exemple, en clonant une référence dans un accesseur, ou en ne donnant pas les types concrets mais des super-types plus abstraits).
  
 ==== En résumé et guise de conclusion ==== ==== En résumé et guise de conclusion ====
java/coo.1598529864.txt.gz · Dernière modification : 2020/08/27 12:04 de bruno