Grundmodus:
1. Schnittstellenmuster: Wenn mehrere Klassen ähnliche Dienste bereitstellen, können über das Schnittstellenmuster die von verschiedenen Dienstanbieterklassen bereitgestellten gemeinsamen Dienste abstrahiert und als unabhängige Schnittstelle deklariert werden. Dadurch können Clientobjekte nahtlos und ohne Änderungen verschiedene Dienstanbieterklassen verwenden.
2. Abstraktes Klassenmuster: Kann zum Entwerfen eines Frameworks verwendet werden, das eine konsistente Implementierung der gemeinsamen Funktionen einer Reihe verwandter Klassen bereitstellt. Im Gegensatz zu Schnittstellen müssen Methoden in Schnittstellen in Unterklassen implementiert werden. Die erforderlichen Methoden können in abstrakten Klassen implementiert werden, und Unterklassen müssen nur erben, wodurch redundante Methodenimplementierungen reduziert werden.
3. Muster für private Methoden: Einige Methoden können nur intern von anderen Methoden oder internen Klassen im selben Objekt verwendet werden. Dieses Muster empfiehlt, solche Methoden als private Methoden zu entwerfen.
4. Zugriffsmuster: In einem Objekt werden alle Instanzvariablen als privat deklariert und es werden öffentliche Zugriffsmethoden bereitgestellt, um auf den öffentlichen Status des Objekts zuzugreifen Das Objekt hat direkten Zugriff auf seine privaten Variablen. Das JavaBean in JSP verwendet dieses Muster.
5. Konstanter Datenmanager: Sehr gut geeignet zum Entwerfen eines effektiven Speichermechanismus zur Verwaltung konstanter Daten, die von verschiedenen Objekten in der Anwendung verwendet werden. Dieses Muster legt nahe, dass Daten, deren Werte in einer Anwendung dauerhaft sind, in einem separaten Objekt gespeichert werden sollten, damit andere Objekte in der Anwendung darauf zugreifen können, anstatt in anderen Objekten erscheinen zu dürfen. Diese Art der Trennung bietet ein einfach zu wartendes zentrales Repository für die konstanten Daten in Ihrer Anwendung.
6. Unveränderliche Objekte: Legen Sie alle Instanzvariablen im Konstruktor fest und stellen Sie keine anderen Methoden bereit, die den Status des Objekts ändern können, um die Möglichkeit einer Statusänderung durch Überschreiben von Klassenmethoden zu verhindern. Alle Instanzvariablen werden als Fanal-Typ geschrieben, sodass sie nur über die Konstruktormethode zugewiesen werden können. Wenn eine der Instanzvariablen einen Verweis auf ein Objekt enthält, gibt die entsprechende Get-Methode inggai eine Kopie des Objekts anstelle von Really zurück Objekt selbst. Der obige Mechanismus kann die Thread-Sicherheit gewährleisten und alle Probleme im Zusammenhang mit dem gleichzeitigen Zugriff automatisch beseitigen.
7. Überwachen: Erwirbt eine Sperre für ein solches Objekt, um sicherzustellen, dass jeweils nur ein Thread eine Methode des Objekts ausführen darf. Dies kann in Java durch die Verwendung des synchronisierten Schlüsselworts in der Deklaration der Objektmethode erfolgen.
Erstellungsmodus:
Rolle: Erledigt eine der am häufigsten ausgeführten Aufgaben in OO-Anwendungen – unterstützt die Verwendung konsistenter, einfacher eingeschränkter Mechanismen zum Erstellen von Objekten; ermöglicht die Kapselung von Details darüber, welche Klassen und wie Instanzen erstellt werden; Die Generation der Kopplung.
1. Factory-Methode: Wenn das Client-Objekt nicht weiß, welche Klasse es instanziieren soll, kann es mithilfe der Factory-Methode eine Instanz der entsprechenden Klasse in der Klassenhierarchie oder einer zugehörigen Klassengruppe erstellen. Factory-Methoden können als Teil des Clients selbst oder in einzelnen Klassen entworfen werden. Unter anderem bestimmt die Klasse, die die Factory-Methode oder eine ihrer Unterklassen enthält, welche Klasse ausgewählt wird und wie sie instanziiert wird.
2. Singleton: Bietet einen eingeschränkten Objekterstellungsmechanismus, um sicherzustellen, dass es nur eine Instanz einer angegebenen Klasse gibt.
3. Abstrakte Fabrik: Ermöglicht die Erstellung von Instanzen von Klassen innerhalb einer Reihe verwandter Klassen, ohne dass das Clientobjekt die tatsächliche konkrete Klasse angeben muss, die instanziiert werden soll.
4. Prototyp: Bietet eine einfache Möglichkeit zum Erstellen von Objekten, dh zum Kopieren von Objekten aus vorhandenen Objekten.
5. Generator: Ermöglicht die Erstellung komplexer Objekte, kann nur die Typ- und Inhaltsinformationen des Objekts bereitstellen und macht die Details der Objekterstellung für den Client transparent. Dieser Ansatz ermöglicht es, mit demselben Konstruktionsprozess unterschiedliche Objektdarstellungen zu generieren.