Diskussion zum Artikel "Entwurfsmuster in der Softwareentwicklung und MQL5 (Teil 2): Strukturelle Muster"

 

Neuer Artikel Entwurfsmuster in der Softwareentwicklung und MQL5 (Teil 2): Strukturelle Muster :

In diesem Artikel werden wir unsere Artikel über Entwurfsmuster fortsetzen, nachdem wir gelernt haben, wie wichtig dieses Thema für uns als Entwickler ist, um erweiterbare, zuverlässige Anwendungen nicht nur mit der Programmiersprache MQL5, sondern auch mit anderen zu entwickeln. Wir werden eine andere Art von Entwurfsmustern kennenlernen, nämlich die strukturellen, um zu lernen, wie man Systeme entwirft, indem man das, was wir als Klassen haben, zur Bildung größerer Strukturen verwendet.

In diesem Teil werden wir das Entwurfsmuster Bridge als eines der Strukturmuster identifizieren. Der Hauptgedanke bei der Verwendung dieses Musters besteht darin, die Abstraktion von ihren Implementierungen zu entkoppeln, um zukünftige Konflikte zu vermeiden, die bei Aktualisierungen oder Änderungen in einer der Implementierungen auftreten können. Es wird auch als Handle oder Body bezeichnet.

Was bewirkt das Muster?

Wie bereits erwähnt, kann das Bridge-Muster verwendet werden, wenn eine Abstraktion viele mögliche Implementierungen hat. Anstatt die übliche Methode der Vererbung zu verwenden, die die Implementierung immer mit der Abstraktion verknüpft, können wir dieses Muster verwenden, um die Abstraktion von ihren Implementierungen zu entkoppeln, um Probleme im Falle von Änderungen oder Aktualisierungen zu vermeiden. Dies kann sehr nützlich sein, um einen sauberen Code zu erstellen, der wiederverwendbar, erweiterbar und leicht zu testen ist.

Nachfolgend ist ein Diagramm für das Entwurfsmuster Bridge dargestellt:

Bridge

Wie aus dem vorstehenden Diagramm für die Struktur des Bridge-Musters hervorgeht, gibt es folgende Teilnehmer:

  • Abstraktion: Sie definiert eine Schnittstelle der Abstraktion und enthält einen Verweis auf ein Objekt vom Typ Implementierer.
  • RefinedAbstraction: Diese erweitert die Abstraktionsschnittstelle.
  • Implementator: der die Implementierungsklassen identifiziert Schnittstelle.
  • ConcreteImplementor: der die Schnittstelle des Implementators implementiert und die konkrete Implementierung dieser Schnittstelle angibt.

Autor: Mohamed Abdelmaaboud