Outils pour utilisateurs

Outils du site


java:coo

Ceci est une ancienne révision du document !


Bases de la conception Objet

Les piliers de la POO

La POO s'appuie sur quatre piliers essentiels:

  1. l'abstraction: un modèle est une abstraction de la réalité, une classe est donc un modèle (la classe Chaise ,'est pas une chaise, mais un modèle de chaise). Cette abstraction peut être plus ou moins forte (déclaration d'un comportement attendu via une interface en java, classe abstraite, classe concrète). voir le sujet sur les modèles.
  2. le polymorphisme: capacité à présenter plusieurs forme, concerne les méthode mais également les substitutions. Il y a quatre principales manières d'utiliser le polymorphisme:
    1. deux avec les méthodes exclusivement: la redéfinition (polymorphisme d'héritage) et la surcharge (polymorphisme paramétrique), lire https://web.maths.unsw.edu.au/~lafaye/CCM/poo/polymorp.htm;
    2. une plus générale avec le polymorphisme ad-hoc: adaptation d'un opérateur en fonction des types (le + entre deux entiers produit une addition des entiers, mais une concaténation entre deux chaînes de caractères), utilisation d'un nom de méthode identique pour une opération sémantiquement équivalente dans des classes différentes sans parenté ni lien fort conceptuellement;polymorphisme ad-hoc: utilisation de noms de méthodes identiques dans des classes différentes: méthode reparer dans les classes Chaise et Autoroute par exemple
    3. 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:Utilisation d'une interface Reparable avec une méthode reparer, implémentée par Chaise et Autoroute
  3. 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;Le concept Chat est une spécialisation du concept Mammifère, lui même spécialisation de Animal
  4. 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).

En résumé et guise de conclusion

La POO repose sur quatre piliers principaux que chaque langage orienté objet implémente avec ses particularités (exemple de la visibilité private ou protected en java ou en C++).

Ces piliers offrent des moyens de concevoir des logiciels souples, réutilisables, évolutifs et faciles à maintenir.

Cependant, gardez à l'esprit que ces piliers sont des outils: ce n'est pas parce qu'ils sont performants et permettent de faire des choses formidables que pour autant, vous avez la garantie de produire un programme de qualité. Ils ont besoin d'être manipulés correctement et à bon escient.

La section suivante explique comment mettre en œuvre une conception de qualité en se basant intelligemment sur ces quatre piliers.

Principes et bonnes pratiques de conception

Les principes SOLID ou SOIRS

.

java/coo.1587717228.txt.gz · Dernière modification : 2020/04/24 08:33 de bruno