Témoignage
 

Rubrique « Info »

 



Écrivez à AILES !



Retour vers programmation



Retour vers les questions Objet



Retour vers les questions sur les 
paradigmes POO 
 


Questionnaire Objet
Les Paradigmes POO
[WikiWikiWeb], [javaworld], [eiffel]


    Le titre l'annonce : "les" paradigmes, en écho à "les" langages de programmation. Ces derniers, bien sûr, mettent tous un point d'honneur à ne pas respecter l'un ou l'autre de ces paradigmes!

Les 3 Paradigmes de base :
    Facile :
    1/ L'Héritage, au minimum "héritage de type", normalement "héritage de classe", permet de définir ce qu'un objet étend / modifie d'un autre. Cette modification concerne son interface uniquement (Héritage de type) ou son implémentation (Héritage de classe).

   2/ L'Encapsulation, qui permet de
regroupement de plusieurs items dans un container (physique ou logique), et qui est très souvent lié au masquage d'information, afin de rendre visible uniquement les caractéristiques de conception stable d'un concept. (typiquement au travers d'accesseurs).

   3/ Le Polymorphisme, qui permet de travailler avec plusieurs types d'objets comme s'ils n'en représentaient qu'un. On notera que le type de polymorphisme employé dans la programmation objet est avant tout de type universel, plus précisément un "polymorphisme d'inclusion", donc basé sur l'héritage.


Autres paradigmes

On peut trouver typiquement ces autres grandes caractéristiques qui font ou non partis des langages :

  • Identifiant de Objet (Object Identity) : généré par le système, unique, indépendant de la valeur de ses attributs, invisible par l'utilisateur;
  • Gestion automatique de la mémoire (Automated memory management) ;
  • Types abstraits de données (Abstract Data Types) ;
  • État modifiable (Mutable state)
  • Généricité (Genericity), qui n'est en fait une autre forme de polymorphisme : le "polymorphisme paramétré". Cf. types génériques.

Paradigmes non respectés

    Dès l'examen des 3 paradigmes de base, on  peut y voir un soucis : L'implémentation objet de Perl n'inclue pas l'encapsulation, d'après [WikiWikiWeb].
    A l'évidence, la gestion automatique de la mémoire n'est pas comprise dans le C++ !
    L'identifiant unique d'un objet n'est pas toujours aussi unique : certains langages recyclent cet identifiant, l'attribuant ainsi à plusieurs objet au cours du cycle de vie d'un programme...
    On notera que certains "extrémistes" vont jusqu'à ignorer l'héritage, le considérant comme une simple "implémentation" du polymorphisme!!! Typiquement, Smalltalk considère que 2 classes possèdent une fonction de même nom sont polymorphiques, même si elles ne sont reliées par aucune relation d'héritage!
    Quant à la généricité, elle est réclamée à grand cri depuis au moins 2 ans (2001-2003) par les adeptes de Java, pour lesquels une liste "d'objets" (sans type bien précis) est peu pratique!

Les Paradigmes Post POO :
    On ne peut pas parler pour l'instant de véritable successeur au paradigme de programmation objet. Ces méthodes viennent donc compléter les caractéristiques de base que sont l'héritage, l'encapsulation et le polymorphisme.
   => Programmation par aspect : comme remarqué dans paradigmes de langage de programmation, ce type de programmation - objet - s'inspire d'un autre paradigme qui ne l'est pas - objet - : 


               
 
Avertissement !
 
Décollage !  |  Présentation du site web "AILES"  | 
Infos générales  |  articles "Informatique"