<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Plugin_%28Entwurfsmuster%29</id>
	<title>Plugin (Entwurfsmuster) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Plugin_%28Entwurfsmuster%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Plugin_(Entwurfsmuster)&amp;action=history"/>
	<updated>2026-06-11T09:28:21Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Plugin_(Entwurfsmuster)&amp;diff=815814&amp;oldid=prev</id>
		<title>imported&gt;Janek Zeiger: /* Beispiele */Wiederholung entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Plugin_(Entwurfsmuster)&amp;diff=815814&amp;oldid=prev"/>
		<updated>2024-06-26T22:03:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Beispiele: &lt;/span&gt;Wiederholung entfernt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Überarbeiten}}&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;Plugin&amp;#039;&amp;#039;&amp;#039; (deutsch: Steckmodul) ist ein [[Entwurfsmuster]] aus dem Bereich der ([[objektorientiert]]en) [[Softwareentwicklung]]&amp;lt;ref&amp;gt;{{Literatur | Autor=[[Martin Fowler]], [[David Rice]], [[Matthew Foemmel]], [[Edward Hieatt]], [[Robert Mie]], [[Randy Stafford]] | Titel=Patterns of Enterprise Application Architecture  | Verlag=[[Addison-Wesley]] | Ort= | Jahr=2002 | ISBN=0-321-12742-0  }}&amp;lt;/ref&amp;gt; und gehört zur Kategorie der [[Verhaltensmuster (Software)|Verhaltensmuster]] (&amp;#039;&amp;#039;Behavioural Patterns&amp;#039;&amp;#039;). Es dient der Institutionalisierung (klaren Aufteilung) in&lt;br /&gt;
* öffentliche (engl. &amp;#039;&amp;#039;public&amp;#039;&amp;#039;) Teile der [[Software]] (i.&amp;amp;nbsp;d.&amp;amp;nbsp;R. [[Klasse (Objektorientierung)|Klassen]] / [[Methode (Programmierung)|Methoden]]), die vom Nutzer der Software verwendet werden dürfen (&amp;#039;&amp;#039;veröffentlichte Teile&amp;#039;&amp;#039;; diese werden mit dem Plugin beschrieben), und&lt;br /&gt;
* solche Teile der Software, die nicht verwendet bzw. erweitert werden sollen (&amp;#039;&amp;#039;nicht-öffentliche Teile&amp;#039;&amp;#039;).&lt;br /&gt;
Die Verwendung ist oft eine Erweiterung im Sinne von &amp;quot;[[Funktionalität (Produkt)|Funktionalität]] hinzufügen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ein Plugin besteht aus einem Erweiterungspunkt (engl. &amp;#039;&amp;#039;extension point&amp;#039;&amp;#039;) und einer oder mehreren nutzenden Erweiterungen (engl. &amp;#039;&amp;#039;extensions&amp;#039;&amp;#039;). &lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
Plugins werden vor allem in Basissoftware ([[Framework]]s, Menge von [[Basisklasse]]n) eingesetzt.&lt;br /&gt;
Generell empfiehlt sich die Verwendung von Plugins, wenn man die Software anderen [[Softwareentwickler]]n zur Einbindung zur Verfügung stellen möchte. Ein Plugin definiert, welcher Teil der Software benutzt und wie dieser Teil erweitert werden darf.&lt;br /&gt;
&lt;br /&gt;
Ein Vorteil ist, dass die Basissoftware in den nicht veröffentlichten Bereichen problemlos weiterentwickelt werden kann. Die Art der Nutzung oder Erweiterung der Basissoftware wird standardisiert und damit leichter austauschbar.&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass das Plugin extra beschrieben werden muss. Plugins schränken die Erweiterungsmöglichkeiten ein und sind in der Programmierung [[Rechenleistung|performance]]-intensiver.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
Die Basissoftware ist eine Personenverwaltung, mit der Personen und ihre Adressen erfasst/geändert/gelöscht werden können. Sie stellt zwei Plugins mit den Erweiterungspunkten &amp;quot;Person_anlegen&amp;quot; und &amp;quot;Person_ändern&amp;quot; zur Verfügung. Die Basissoftware soll in einem Judoverein eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Der beauftragte Softwareentwickler&lt;br /&gt;
* nutzt den Erweiterungspunkt &amp;quot;Person_anlegen&amp;quot;&lt;br /&gt;
** mit einer Erweiterung für die Erfassung des Eintrittjahres in den Verein&lt;br /&gt;
* nutzt den Erweiterungspunkt &amp;quot;Person_ändern&amp;quot;&lt;br /&gt;
** mit einer Erweiterung für die Dokumentation der Änderung der Gewichtsklasse und&lt;br /&gt;
** mit einer Erweiterung für die Dokumentation einer bestandenen Gürtelprüfung&lt;br /&gt;
* hat aber &amp;#039;&amp;#039;keine&amp;#039;&amp;#039; Möglichkeit den Vorgang &amp;lt;Person löschen&amp;gt; zu beeinflussen bzw. zu erweitern.&lt;br /&gt;
&lt;br /&gt;
Ein bekanntes Beispiel für ein Plugin-basiertes Framework ist [[Eclipse (IDE)|Eclipse]], eine in [[Java (Programmiersprache)|Java]] geschriebene&amp;amp;nbsp;[[Integrierte Entwicklungsumgebung|IDE]].&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Entwurfsmuster}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Entwurfsmuster]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Janek Zeiger</name></author>
	</entry>
</feed>