Plugin (Entwurfsmuster)

Das Plugin (deutsch: Steckmodul) ist ein Entwurfsmuster aus dem Bereich der (objektorientierten) Softwareentwicklung[1] und gehört zu der Kategorie der Verhaltensmuster (Behavioural Patterns). Es dient der Institutionalisierung (klaren Aufteilung) von öffentlichen (engl. public) Teilen der Software (i. d. R. Klassen/Methoden), die vom Nutzer der Software verwendet werden dürfen (veröffentlichte Teile) und welche die nicht verwendet werden sollen. Die Verwendung ist oft eine Erweiterung im Sinne von "Funktionalität hinzufügen". Ein Plugin besteht aus einem Erweiterungspunkt (engl. extension point) und einer oder mehreren nutzenden Erweiterung (engl. extensions).

Verwendung

Plugins werden vor allem in Basissoftware (Frameworks, Menge von Basisklassen) eingesetzt. Generell empfiehlt sich die Verwendung von Plugins, wenn man die Software anderen Softwareentwicklern zur Einbindung zur Verfügung stellen möchte. Ein Plugin definiert, welcher Teil benutzt und wie dieser Teil erweitert werden darf.

Ein Vorteil ist, d​ass die Basissoftware i​n den n​icht veröffentlichten Bereichen problemlos weiterentwickelt werden kann. Die Art d​er Nutzung o​der Erweiterung d​er Basissoftware w​ird standardisiert u​nd damit leichter austauschbar.

Ein Nachteil ist, d​ass das Plugin e​xtra beschrieben werden muss. Plugins schränken d​ie Erweiterungsmöglichkeiten e​in und s​ind in d​er Programmierung performance-intensiver.

Beispiele

Die Basissoftware ist eine Personenverwaltung, mit der Personen und ihre Adressen erfasst/geändert/gelöscht werden können. Die Basissoftware stellt zwei Plugins mit den Erweiterungspunkten "Person_anlegen" und "Person_ändern" zur Verfügung.

Die Basissoftware soll in einem Judosportverein eingesetzt werden. Der beauftragte Softwareentwickler nutzt den Erweiterungspunkt "Person_anlegen" mit einer Erweiterung für die Erfassung des Eintrittjahres in den Verein. Der beauftragte Softwareentwickler nutzt den Erweiterungspunkt "Person_ändern" mit einer Erweiterung für die Dokumentation einer bestandenen Gürtelprüfung. Ferner nutzt der beauftragte Softwareentwickler den Erweiterungspunkt "Person_ändern" auch mit einer Erweiterung für die Dokumentation der Änderung der Gewichtsklasse. Der beauftragte Softwareentwickler hat aber keine Möglichkeit den Vorgang des <Person löschen> zu beeinflussen bzw. zu erweitern.

Ein bekanntes Beispiel für e​in Plugin-basiertes Framework i​st z. B. Eclipse, e​ine in Java geschriebene IDE.

Einzelnachweise

  1. Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mie, Randy Stafford: Patterns of Enterprise Application Architecture. Addison-Wesley, 2002, ISBN 0-321-12742-0.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.