Arbeiten mit .NET: Entwurfsmuster/ Structural Patterns/ Adapter
Erscheinungsbild
Implementierung
[Bearbeiten]using System; namespace Org.Wikibook.De.Csharp.Pattern.Structural.Adapter { /// <summary> /// Implementierung der Schnittstelle, /// die genutzt werden soll, /// um auf die Funktionalität /// der Bibliotheken des Drittanbieters zugreifen zu können, /// ohne dabei Gedanken an notwendige Konvertierungen, etc. /// aufwenden zu müssen. /// </summary> interface Schnittstelle { void Operation(); }
/// <summary> /// Da die externe Bibliotheken von Drittanbietern /// häufig nicht die Möglichkeit zur direkten Erweiterung bieten, /// können wir über einen "Adapter" darauf zugreifen. /// Sinnvoll ist es beispielsweise dann, /// wenn die Bibliothek des Drittanbieters /// spezifische Parameterübergaben erwartet. /// </summary> class Adapter : Schnittstelle { private ExterneKlasse m_ExternesObjekt = new ExterneKlasse(); public void Operation() { // Hier kann zunächst // lokale Arbeit erledigt werden, // bevor die spezielle Implementierung aufgerufen wird. // Beispielsweise kann es nötig sein, // zunächst die Parameter zur Übergabe // an die Operation vorzubereiten. Console.WriteLine("Parameter werden zur Übergabe vorbereitet und übergeben..."); // Jetzt rufen wir die Operation der externen Implementierung auf. m_ExternesObjekt.OperationsImplementierung(); } }
/// <summary> /// Diese Klasse birgt die externe Funktionalität /// (z.B. Bibliothek eines Fremdherstellers). /// </summary> class ExterneKlasse { public void OperationsImplementierung() { Console.WriteLine("Operation wird ausgeführt..."); } } }
Webverweise
[Bearbeiten]Wikibooks: Adapter
Wikipedia: Adapter (Entwurfsmuster)