Willst du wissen was sind Designmuster in Java? Sie sind beim richtigen Artikel angekommen, denn hier werden wir Ihnen sagen, was sie sind, sowie ihre Klassifizierung und ein bisschen mehr.
Objektdiagramm zur Lösung allgemeiner Probleme.
Designmuster in Java
Bevor wir über die . sprechen Designmuster in Java, müssen wir beachten, dass diese auf objektorientierte Programmierung ausgerichtet sind. Zweitens ist es wichtig, sich an einige damit verbundene Grundlagen zu erinnern, einschließlich der folgenden:
Für weitere Informationen laden wir Sie ein, unseren Artikel mit dem Titel zu lesen: Die Objekt orientierte Programmierung: Definition.
Zugehörige Grundlagen
Wie wir immer gesagt haben, ist Programmierung kein isoliertes Ereignis, daher ist es immer wichtig, sich an einige verwandte Konzepte zu erinnern. Bei dieser Gelegenheit genügt es, auf folgende Aspekte hinzuweisen:
Java-Programmiersprache
Java ist eine der ältesten Datenprogrammiersprachen; es wird auch auf den meisten Plattformen verwendet. In diesem Zusammenhang können wir erwähnen, dass viele der Computeranwendungen, die wir heute haben, auf dieser wichtigen Sprache basieren.
Zu diesem letzten Aspekt können wir vor allem die Anwendungen im Zusammenhang mit Webservices erwähnen. Zum Beispiel: mobile Anwendungen, Desktop, Server, unter anderem.
Andererseits gehört Java zum Paradigma der objektorientierten Programmierung. In dieser Hinsicht gilt sie trotz ihrer Natur als zuverlässige, sichere und einfach zu verwendende Sprache.
Darüber hinaus hat es den Vorteil, dass es unabhängig von der Computerarchitektur auf jeder virtuellen Java-Maschine ausgeführt werden kann. Mit anderen Worten, Java ist eine portable Programmiersprache.
Designmuster
Ein Entwurfsmuster ist eine Lösung für ein Entwurfsproblem, das bei der objektorientierten Programmierung häufig auftritt. Darüber hinaus enthält dieses Diagramm die Beschreibung der Objekte nach Klassen sowie die Beziehungen, die sie verbinden.
Andererseits ist es wichtig zu erwähnen, dass Entwurfsmuster im Allgemeinen das Ergebnis der bisherigen Erfahrungen von Programmierern sind. Darüber hinaus gibt es in den Entwurfsmustern in Java keine Theoretisierung, wie dies bei anderen Elementen der Programmierung der Fall ist, wie z. Algorithmen.
Was sind Designmuster in Java?
Wie bereits erwähnt, ist ein Entwurfsmuster ein Objektdiagramm, das den Zweck erfüllt, ein Programmierproblem zu lösen. Jetzt die Designmuster in Java Sie stellen die Lösung des Problems dar, die in einem in dieser spezifischen Programmiersprache geschriebenen Programm enthalten ist.
Was sind die Entwurfsmuster in Java?
Im Allgemeinen können wir über 23 . sprechen Entwurfsmuster in Java. Diesbezüglich wurden diese erstmals 1995 durch das Buch Dessing Patterns aufgedeckt.
Andererseits sind diese Muster, wie bereits gesagt, für die Lösung möglicher neuer Probleme unerlässlich. Darüber hinaus sind sie Antworten auf bekannte Probleme, die aus den bisherigen Erfahrungen von Programmierern stammen, die sich auf das objektorientierte Paradigma spezialisiert haben.
Arten von Entwurfsmustern in Java
Im Allgemeinen wird jedes der 23 grundlegenden Entwurfsmuster in eine der drei allgemeinen Arten von kategorisiert Designmuster in Java die existieren. Auf diese Weise zeigen wir im Folgenden die Details zu jedem von ihnen.
Baumuster
Die Hauptfunktion von Konstruktionsmustern besteht darin, die Erstellung von Objekten zu organisieren, die Verwendung konkreter Klassen zu kapseln und die Schnittstellen in den Beziehungen zwischen ihnen zu fördern. Zu dieser Klasse von Mustern gehören die folgenden:
Abstrakte Fabrik
Es ist dafür verantwortlich, als Familie gruppierte Objekte zu erstellen, ohne die spezifischen Klassen zu berücksichtigen, durch die die Objekte gebildet werden.
Werft
Es bietet die Möglichkeit, komplexe Objekte unabhängig von ihrer Implementierung oder anders ausgedrückt durch unterschiedliche Implementierungen zu erstellen.
Fabrikmethode
Die Hauptfunktion dieses Musters besteht darin, die Erstellung eines Objekts an bestimmte Unterklassen zu delegieren. Dies wird in dieser Hinsicht durch die Verwendung einer abstrakten Methode erreicht.
Prototyp
Es erleichtert die Erstellung neuer Objekte aus Prototypen aus dem Duplizieren oder Klonen bestehender Objekte.
Singleton
Die Funktion dieses Musters besteht darin, die Existenz von Klassen zu verwalten, die nur eine Instanz haben, sowie eine Methode bereitzustellen, die in der Lage ist, diese Instanz zurückzugeben.
Diesbezüglich sehen Sie im folgenden Video weitere Informationen.
Strukturierungsmuster
Die Strukturierungsmuster sind ihrerseits dafür verantwortlich, die Hierarchien der Klassen und die sie verbindenden Beziehungen zu organisieren. Innerhalb dieser Klassifizierung sind die folgenden:
Adapter
Es ist dafür verantwortlich, die Schnittstelle einer bestehenden Klasse in eine andere mit den von den Benutzern des Systems gewünschten Eigenschaften so umzuwandeln, dass beide kompatibel sind. Kurz gesagt ist das Adaptermuster für die Anpassung eines vorhandenen Objekts verantwortlich.
Bridge
Die Hauptfunktion dieses Musters besteht darin, die konzeptionellen Aspekte einer Klassenhierarchie von ihrer Implementierung zu lösen. Mit anderen Worten, dieses Muster ist für die Implementierung eines Objekts verantwortlich.
Zusammengesetzt
Diese Art von Muster ist dafür verantwortlich, einen Baumentwurfsrahmen zu erzeugen, der aus einer Komposition von Objekten mit variabler Tiefe stammt. Dies ist mit anderen Worten für die Organisation der hierarchischen Zusammensetzung von Objekten verantwortlich.
Dekorateur
Es wird verwendet, um einem Objekt neue Funktionalitäten, hauptsächlich dynamische, hinzuzufügen, um es zu ergänzen. Insofern ist das Ergebnis dieses Musters das Ersetzen eines bestehenden Objekts.
Weitere Informationen zu diesem Muster erhalten Sie im folgenden Video.
Fassade
Sein Hauptziel besteht darin, die Verwendung einer Schnittstelle von Objekten zu erleichtern, sodass mehrere von ihnen neu gruppiert und zu einem vereint werden. Wie im vorherigen Muster ist das Endergebnis das Ersetzen einer Reihe von Objekten.
Schlaggewicht
Im Allgemeinen ist das Flayweight-Muster für den Freigabeprozess einer Reihe von Objekten verantwortlich, insbesondere von Objekten mit extrem feiner Granularität. Darüber hinaus ist es für die Aufrechterhaltung eines unabhängigen Zustands von ihnen verantwortlich.
Proxy
Die Hauptfunktion eines Proxy-Musters besteht darin, ein Objekt zu erstellen, das durch ein anderes ersetzt werden kann, das die volle Kontrolle über seinen Zugriff hat. Dabei geht es vor allem darum, optimale Voraussetzungen für die Optimierung und den Schutz des Objekts zu schaffen.
Verhaltensmuster
Schließlich sind die Verhaltensmuster diejenigen, die die Lösungen zur Organisation der Daten und Objekte liefern, zusätzlich legen sie die Reihenfolge zwischen den Interaktionen fest, die in letzteren auftreten. Innerhalb dieser Gruppe von Mustern finden wir Folgendes:
Verantwortungskette
Wie der Name schon sagt, bezieht sich dieses Muster auf die Erstellung einer Kette von Objekten, sodass, wenn eines von ihnen nicht auf eine Anweisung reagieren kann, der nächste Link die entsprechende Antwort geben kann.
Befehl
Das Hauptziel dieses Musters besteht darin, eine Abfrage in ein Objekt umzuwandeln, sodass die zugehörigen grundlegenden Operationen einfacher durchzuführen sind. Das heißt, seine Funktion besteht darin, eine Anfrage in ein Objekt umzuwandeln.
Dolmetscher
Es bezieht sich auf die Möglichkeit, die Darstellung einer Sprache durch grammatikalische Objekte anzubieten. Dies, damit die schriftlichen Ausdrücke dieser Sprache leicht bewertet und interpretiert werden können.
Wenn Sie mehr darüber erfahren möchten, können Sie sich das folgende Video ansehen.
Iteratoren
Seine Hauptfunktion besteht darin, den sequentiellen Zugriff auf eine Gruppe von Objekten zu ermöglichen, ohne dass die Systembenutzer die Aspekte ihrer Implementierung kennen müssen.
Vermittler
Wie der Name schon sagt, ist dieses Muster für den Aufbau eines Objekts verantwortlich, das als Vermittler zwischen den Interaktionen der Objekte fungiert, ohne dass diese direkt interagieren.
Erinnerung
Im Allgemeinen ist es eines der wichtigsten Muster, da er für die Wiederherstellung und Sicherung des Zustands von Objekten verantwortlich ist. In diesem Zusammenhang müssen wir anmerken, dass eine Grundbedingung innerhalb dieses Musters der Respekt vor der Kapselung der Klassen ist.
Beobachten Sie
Die Hauptfunktion dieses Musters besteht darin, die Beobachter über die im Thema aufgetretenen Änderungen zu informieren, damit sie ihren Status aktualisieren können.
Staat
Das Ziel dieses Musters ist ziemlich einfach zu verstehen, da es einem Objekt die Möglichkeit bietet, sein Verhalten basierend auf seinem internen Zustand zu ändern.
Strategie
Es erleichtert die Anpassung zwischen dem Verhalten und den Algorithmen eines Objekts, je nachdem, ob ein spezifischer Bedarf seitens des Systems besteht oder nicht. In dieser Hinsicht sollten die Interaktionen zwischen dem Objekt und den Benutzern des Systems während der Anwendung dieses Musters nicht verändert werden.
Vorlagenmethode
Dieses Muster ist dafür verantwortlich, den entsprechenden Bericht über die Phasen zu erstellen, aus denen die Operationen eines Objekts bestehen, die in den Unterklassen beschrieben sind. Mit anderen Worten, es geht darum, einige Stufen, die die Operationen eines Objekts bilden, an die Unterklassen zu delegieren.
Gast
Es ist für die Konstruktion einer erforderlichen Operation verantwortlich, die sich auf die Elemente einer Reihe von Objekten bezieht, ohne dass in ihren Klassen Änderungen vorgenommen werden. Kurz gesagt ist dieses Muster dafür verantwortlich, einer Reihe von Objekten neue Operationen hinzuzufügen.
Vorteile von Layoutmustern in Java
Im Allgemeinen können wir sagen, dass der Hauptvorteil der Designmuster in Java ist, dass sie es ermöglichen, komplexe und robuste Anwendungen zu erstellen. Darüber hinaus bietet es die Möglichkeit, bereits bekannte Lösungen beim Design neuer Lösungen wiederzuverwenden.
Auf der anderen Seite durch den Einsatz von Designmuster in Java, Designer und Entwickler im Allgemeinen, können ihre Kenntnisse der objektorientierten Programmierung vertiefen. In dieser Hinsicht können wir unter den wichtigsten Grundlagen dieses Programmierparadigmas Folgendes erwähnen: Polymorphismus, Vererbung, Kapselung, unter anderem.
Wie erkennt man, welches Designmuster zu unserem Problem passt?
Um zu ermitteln, welches Entwurfsmuster in Java dasjenige ist, das am besten auf ein bestimmtes Programmierproblem reagiert, müssen wir zunächst sein Ziel kennen. Nachdem wir die allgemeine Beschreibung jedes Entwurfsmusters studiert haben, geht es auf diese Weise als Nächstes zur Anpassungsphase über.
In diesem Zusammenhang bezieht es sich auf die Möglichkeit, dass sich die generische Struktur des Musters an unser Problem anpasst. Dazu benennen wir die Klassen und Methoden dieser Struktur um und integrieren sie abstrakt in unsere Anwendung, um zu testen, ob das Muster tatsächlich in der Lage ist, unseren Anforderungen zu entsprechen.
Wenn wir auf dem richtigen Weg sind, besteht der letzte Schritt darin, diese Klassen und Methoden nach dem von ihnen beschriebenen Objekt und den von ihnen ausgeführten Operationen zu benennen. In diesem Zusammenhang ist zu beachten, dass in einigen Fällen Änderungen am Objektdiagramm erforderlich sind.



