Tout est objet Extension dynamique Introspection et R´
eflexion Factory(2)
Extension dynamique et r´eflexion
Conception Orient´
ee Objet
Jean-Christophe Routier
Licence mention Informatique
Universit´
e Lille 1
Universit´
e Lille 1 - Licence Informatique Conception Orient´
ee Objet 1
Tout est objet Extension dynamique Introspection et R´
eflexion Factory(2)
Extension dynamique
Java offre la possibilit´
e d’avoir des programmes qui s’´
etendent
dynamiquement.
Cela permet un programme Pde charger des classes qui n’existaient pas au
moment de la programmation/compilation de Pet de cr´
eer et manipuler
des instances de ces classes.
eflexion
Avec Java il est possible dans un programme de manipuler et d’analyser
dynamiquement les objets du programme eux-mˆ
emes
introspection
Universit´
e Lille 1 - Licence Informatique Conception Orient´
ee Objet 2
Tout est objet Extension dynamique Introspection et R´
eflexion Factory(2)
Sch´ema objet m´eta-circulaire
Classe
# nom : String
# mesAttributs : Map<String,Attribut<?>>
# mesMethodes : Map<String,Methode>
+Classe(nom : String, attributs : Collection<Attribut<?>>,
methodes : Collection<Methode>)
+creerInstance(args : Object...) : Object
+getMethode(nom : String) : Methode
+getAttribut(nom : String) : Attribut<?>...
avec (tr`
es approximativement)
Methode
# nom : String
...
+invoquer(instance : Object, args : Object...)
Attribut<T>
# nom : String
# value : T
+getValeur() : T
+setValeur(value : T)
Universit´
e Lille 1 - Licence Informatique Conception Orient´
ee Objet 3
Tout est objet Extension dynamique Introspection et R´
eflexion Factory(2)
Sch´ema objet m´eta-circulaire
Classe
# nom : String
# mesAttributs : Map<String,Attribut<?>>
# mesMethodes : Map<String,Methode>
+Classe(nom : String, attributs : Collection<Attribut<?>>,
methodes : Collection<Methode>)
+creerInstance(args : Object...) : Object
+getMethode(nom : String) : Methode
+getAttribut(nom : String) : Attribut<?>...
avec (tr`
es approximativement)
Methode
# nom : String
...
+invoquer(instance : Object, args : Object...)
Attribut<T>
# nom : String
# value : T
+getValeur() : T
+setValeur(value : T)
Universit´
e Lille 1 - Licence Informatique Conception Orient´
ee Objet 3
Tout est objet Extension dynamique Introspection et R´
eflexion Factory(2)
Sch´ema objet m´eta-circulaire
Classe
# nom : String
# mesAttributs : Map<String,Attribut<?>>
# mesMethodes : Map<String,Methode>
+Classe(nom : String, attributs : Collection<Attribut<?>>,
methodes : Collection<Methode>)
+creerInstance(args : Object...) : Object
+getMethode(nom : String) : Methode
+getAttribut(nom : String) : Attribut<?>...
avec (tr`
es approximativement)
Methode
# nom : String
...
+invoquer(instance : Object, args : Object...)
Attribut<T>
# nom : String
# value : T
+getValeur() : T
+setValeur(value : T)
Universit´
e Lille 1 - Licence Informatique Conception Orient´
ee Objet 3
1 / 40 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !