Académique Documents
Professionnel Documents
Culture Documents
www.dil.univ-mrs.fr/~garreta/I
Octobre 2005 JavaBeans 1 Octobre 2005 JavaBeans 3
JavaBean JavaBean
• Composant logiciel réutilisable pouvant être Mais, alors, de quoi allons-nous parler?
manipulé visuellement par un outil de développement
– modèles de conception
• règles pour nommer les méthodes publiques
palette de beans • des méthodes « obligatoires »
– réflexion
deux beans
• possibilité de découvrir à l'exécution les membres d'un objet
instanciés
– persistance
Inspecteur • sérialisation d’un bean : fichier binaire ou XML (long terme)
de propriétés • désérialisation d'un bean : alternative à la construction
JavaBean Événements
• événement : instance d'une classe
Des éléments du langage Java particulièrement sollicités <C>Event ex: MouseEvent
Resumé Adaptateurs
code imposé dans une source d'événements Exemple : un auditeur et un événement, mais
plusieurs sources et plusieurs réactions possibles
liste des auditeurs :
Vector tempChangeListeners;
Auditeur ( un Thermostat )
gestion de cette liste : méthode 1 méthode 2 méthode 3
void addTempChangeListener(TempChangeListener l);
void removeTempChangeListener(TempChangeListener l);
Notification
notification aux auditeurs :
void notifyTemperatureChange();
Source 1 Source 2 Source 3
Les objets PropertyChangeSupport allègent ces corvées
Adaptateurs Propriétés
public class AdaptaTemp implements TempChangeListener {
Object cible;
Map repert = new HashMap();
Propriété
AdaptaTemp(Object cible) { public void set<nom>(<type> val);
this.cible = cible;
}
public <type> get<nom>();
void enregistrer(PointChaud source, String nomMethode) exemple
throws NoSuchMethodException {
Method methode = cible.getClass().getMethod( public void setTemperature(int val);
nomMethode, new Class[] { TempChangeEvent.class });
repert.put(source, methode); public int void getTemperature ();
source.addTempChangeListener(this);
} souvent il y a une variable derrière
public void tempChange(TempChangeEvent evt) { int tempCour;
try {
public void setTemperature(int val) {
re !
Method methode = (Method) repert.get(evt.getSource());
tempCour = val;
bl i s t
methode.invoke(cible, new Object[] { evt });
to i
s o n'e
} catch (Exception e) { }
ga
pa is ce
e.printStackTrace(); public int void getTemperature () {
} return tempCour;
ma
}
}
}
prudence…
Octobre 2005 JavaBeans 29 Octobre 2005 JavaBeans 31
s
ires
rce
...
bina
sou
JavaBeans :
try {
Gadget g = (Gadget)
composants
Beans.instantiate(null, "atelier.outils.MonGadget");
développement
}
logiciels
catch (Exception e) {
}
...
réutilisables
chargeur de classes Fichier
exécution
atelier/outils/MonGadget.ser