Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Markus Block Ronald Kutschke Plugin Design Patterns in Vortrag im Rahmen des Seminars Software Design Patterns.

Ähnliche Präsentationen


Präsentation zum Thema: "Markus Block Ronald Kutschke Plugin Design Patterns in Vortrag im Rahmen des Seminars Software Design Patterns."—  Präsentation transkript:

1 Markus Block Ronald Kutschke Plugin Design Patterns in Vortrag im Rahmen des Seminars Software Design Patterns Eclipse

2 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 2 Inhalt Allgemein Plugin Vom Starten der Applikation bis zum Benutzen der Plugin Funktionalität Umsetzung bei Eclipse Konzepte in der Plugin Architektur von Eclipse Konzepte Plugin Patterns Einleitung

3 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 3 Motivation Ein Programm soll um Funktionen erweitert werden können. Diese sind zur Entwicklungszeit des Programms jedoch noch nicht bekannt. Einleitung

4 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 4 Begriffe Plugin: Software, die ein Programm um Funktionalität erweitert Hostanwendung: Software, die erweiterbar sein soll Allgemein

5 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 5 Ladevorgang und Zugriff Starten der Hostanwendung Suchen der Plugins –Konfigurationsdatei –Festes Verzeichnis Laden und Instanziieren der Plugins –Zur Ladezeit der Hostanwendung –Wenn Funktion benötigt (Lazy Loading) Nutzen der Funktionalität des Plugins –Reflection –Callback Interface Allgemein

6 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 6 Beispiel 1 Berechnungsklasse Rechenoperationen als Plugins Festes Plugin Verzeichnis Plugins werden zur Ladezeit der Hostanwendung geladen Suchen der Methoden über Reflection Beispiele

7 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 7 Beispiel 2 Callback Interfaces anstatt Reflection Beispiele

8 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 8 Beispiel 3 Laden der Plugins bei Bedarf der Funktionalität (Lazy Loading) kürzere Ladezeit der Hostanwendung Beispiele

9 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 9 Ladevorgang und Zugriff in Eclipse (1) Starten von Eclipse Durchsuchen eines festgelegten Verzeichnisses nach Plugins (Eclipse/plugins) Umsetzung in Eclipse

10 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 10 Plugin Verzeichnis (1) ScreenShot Plugin Verzeichnis Umsetzung in Eclipse

11 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 11 Plugin Verzeichnis (2) Verzeichnis: Eclipse/plugins/org.junit_3.8.1 junit.jar plugin.xml Icons Weitere Ressourcen Umsetzung in Eclipse

12 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 12 Ladevorgang und Zugriff in Eclipse (2) Parsen der Manifest Datei jedes Plugins Aufbau der Plugin Registry Instanziierung über Lazy Loading Zugriff über Callback Interface Umsetzung in Eclipse

13 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 13 Begriffe in Eclipse Host Plugin Extender Plugin Member1 Member2 Member3 Extension Points Grundlagen Plugin EP kann von mehreren Plugin erweitert werden

14 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 14 Plugin Manifest Konzepte Extensions Dependencies Identifier GUI Informationen Konfiguration Extension Point Definitionen

15 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 15 Definition eines Extension Points Konzepte

16 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 16 Extension Point Schema Definition Konzepte

17 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 17 Ladevorgang im Detail Aufbau der Plugin Registry beim Start von Eclipse aus Plugin Manifest Dateien Host Plugin muss beim Aufruf sämtliche Extender Plugins instanziieren Informationen aus Platform API –Aufruf des Default Konstruktors der Callback Klasse –eventuelles setzen der Konfigurationsparameter Einmal geladene Plugins bleiben bis zum Beenden von Eclipse aktiv Konzepte

18 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 18 Lazy Loading Problem: –Rekursive Instanziierung aller Callback Klassen zeitaufwändig Lösung: –Instanziieren leichter Dummy Objekte instanziieren bei Bedarf eigentlichen Callback Objekte leiten Aufrufe an Callback Objekte weiter –Auslagern der GUI Informationen in Plugin Manifest Konzepte

19 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 19 Lazy Loading – Virtual Proxy Konzepte Host Plugin Extender Plugin instantiates

20 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 20 Lazy Loading – Virtual Adapter Konzepte Host PluginExtender Plugin instantiates Eclipse

21 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 21 Service Extension Pattern Ein Event im Host Plugin bewirkt das Aufrufen von einem Callback Objekt eines Extender Plugins Konzepte Host Plugin Extender Plugin 1 Extender Plugin 2 Event1

22 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 22 Listener Extension Pattern (1) Art des Observer Patterns Registrierung als Listener/Observer für ein bestimmtes Event bei einem Host Plugin Registrierung über das Erweitern eines Extension Points des Host Plugins Callback Interface entspricht Observer Interface im Observer Pattern Konzepte

23 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 23 Listener Extension Pattern (2) Konzepte Ein Event im Host Plugin bewirkt das Aufrufen sämtlicher Callback Objekte der registrierten Extender Plugins Host Plugin Extender Plugin 1 Extender Plugin 2 Event Member 1 Member 2

24 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 24 Fazit Heutige Programme kommen an einem Plugin Konzept nicht vorbei. Eclipse stellt durch seine flexiblen Erweiterungs- möglichkeiten ein sehr mächtiges Plugin Konzept zur Verfügung, das wesentlicher Bestandteil des Erfolges der Eclipse IDE ist. Fazit

25 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 25 Notes on the Eclipse Plug-in Architecture (Azad Bolour) Eclipse Platform Technical Overview (Object Technology International, Inc.) Quellen

26 Plugin Design Patterns in Eclipse Markus Block Ronald Kutschke 26 Fragen zum Thema? Fragen


Herunterladen ppt "Markus Block Ronald Kutschke Plugin Design Patterns in Vortrag im Rahmen des Seminars Software Design Patterns."

Ähnliche Präsentationen


Google-Anzeigen