COURS III :
Technologie orientée objet
Le point de départ des composants
- Desiderata : Software Plug-in (comme pour cartes PC
ou circuits intégrés)
- Set Standard de fonctions accessibles par une interface connue
- "truly generic type" : p. ex. impression d'un document
- "task oriented type : p. ex. spécifique à une application
- Point de départ technique : L'objet et son lien (rappel)
- Programmation O-O : réutilisation du code source
Exemple 1 : l'objet du type C++
- Le lien se fait au moment de la compilation ("static
binding")
- Une librairie de classe définit les classes d'objets à disposition
- Si ces classes font partie du programme, les objets peuvent être créés
- Code exécutable partagé et chargé dynamiquement ("dynamic binding")
Exemple 2 : les DLL dans Windows
- Réservation d'une table de pointeurs dans l'exécutable appelant
- Permet partage du code et création de l'objet différé dans le temps
- Peut créer des conflits de versions
- Composants : réutilisation de l'exécutable (pas de compilation ni d'édition de
lien)
Exemple 2 : L'objet du type Java
- le lien se fait au moment de l'exécution ( "late binding")
- La librairie de classe comprend en plus un chargeur ("class loader")
- Les classes peuvent être recherchées et chargées pendant l'exécution
- Les objets sont liés dynamiquement au processus exécutant
- Composants avec optimisation du lien ou "dual interface"
Exemple 3 : l'objet VBX, OLE
Automation ou ActiveX utilise"vtable
binding"
- Le lien se fait soit au moment de la compilation si possible ("early binding")
- Plus rapide, plus sûr
- "Type library" doit être disponible et enregistrée dans "Registry"
- Soit au moment de l'exécution ( "late
binding") comme l'exemple 2
- Composants distribuables
- Accès par "IUnknown" et "IDispatch"
- L'évolution : Le composant universel et distribué
- Suite logique des composants : distribué et de diverses sources
- Modèles supportant composants indépendants du langage de programmation
- Exemples : COM / DCOM,
CORBA, OpenDoc, ActiveX, JavaBeans