Heim  >  Artikel  >  Java  >  24 Entwurfsmuster und 7 Prinzipien in Java

24 Entwurfsmuster und 7 Prinzipien in Java

高洛峰
高洛峰Original
2016-12-12 13:33:551375Durchsuche

1. Erstellungsmuster

1. Abstraktes Factory-Muster: Bietet eine Schnittstelle zum Erstellen einer Familie verwandter oder abhängiger Objekte, ohne eine bestimmte Klasse anzugeben.
2 das Generatormuster, um den Konstruktionsprozess eines Produkts zu kapseln und eine schrittweise Konstruktion eines komplexen Objekts von seiner Darstellung zu ermöglichen, sodass derselbe Konstruktionsprozess unterschiedliche Darstellungen erzeugen kann.
3 : Definiert eine Schnittstelle zum Erstellen von Objekten, aber die Unterklasse entscheidet, welche Klasse instanziiert werden soll.
4 . Prototypmuster (Prototypmuster): Wenn der Prozess der Erstellung einer Instanz von Ist eine bestimmte Klasse teuer oder komplex, verwenden Sie das Prototypmuster (Singleton-Muster): Stellen Sie sicher, dass eine Klasse nur eine Instanz hat, und stellen Sie einen globalen Zugriffspunkt bereit.
6 Muster): Kombinieren Sie zwei oder mehr Muster in einer Lösung, um allgemeine oder wiederkehrende Probleme zu lösen.

2. Strukturmustermuster

1. Adaptermuster (Adaptermuster): Konvertieren Sie die Schnittstelle einer Klasse In eine andere vom Kunden erwartete Schnittstelle können Klassen mit inkompatiblen Schnittstellen nahtlos zusammenarbeiten. Klassenadapter verwenden Mehrfachvererbung.

2. Verwenden Sie das Brückenmuster, damit Implementierung und Abstraktion geändert werden können unabhängig voneinander, indem sie in zwei verschiedene Klassenhierarchien eingeteilt werden.
3. Zusammengesetztes Muster: Ermöglicht die Kombination von Objekten in einer Baumstruktur, um eine „Ganze/Teil“-Hierarchie darzustellen. Durch die Kombination können Kunden einzelne Objekte und Kombinationen von Objekten verwalten auf konsistente Weise.
4. Dekoratormuster: dynamisch Durch das Anhängen von Verantwortlichkeiten an Objekte und die Erweiterung der Funktionalität bieten Dekoratoren eine flexiblere Alternative als Vererbung.
5. Fassadenmuster: Bietet eine einheitliche Schnittstelle für den Zugriff auf Subsysteme A Gruppe von Schnittstellen in. Das Erscheinungsbild definiert eine Schnittstelle auf hoher Ebene, um die Verwendung des Subsystems zu vereinfachen.
6. Fliegengewichtsmuster: Wenn Sie möchten, dass eine Instanz einer Klasse verwendet wird, um viele „virtuelle Instanzen“ bereitzustellen, verwenden Sie einfach das Fly-Volume-Muster.
7. Proxy-Muster: Stellen Sie einen Ersatz oder Platzhalter für ein anderes Objekt bereit, um den Zugriff auf dieses Objekt zu steuern.

3. Verhaltensmuster

1 : Durch das Chain-of-Responsibility-Muster können Sie eine Objektkette für eine bestimmte Anfrage erstellen und diese der Reihe nach verarbeiten oder an das nächste Objekt in der Kette weitergeben.

2 „Anforderung“ in ein Objekt, sodass andere Objekte mithilfe anderer Anforderungen, Warteschlangen oder Protokolle parametrisiert werden können. Das Befehlsmuster unterstützt auch widerrufliche Operationen.
3. Verwenden Sie das Interpretermuster, um einen Interpreter für die zu erstellen Sprache.
4. Iteratormuster (Iteratormuster): Stellen Sie eine Methode bereit, um sequentiell auf jedes Element in einem Aggregatobjektelement zuzugreifen, ohne seine interne Darstellung offenzulegen.
5. Verwenden Sie das Mediatormuster, um komplexe Kommunikation zu zentralisieren Kontrollmethoden zwischen verwandten Objekten.
6. Memento-Mustermuster): Wenn Sie ein Objekt in seinen vorherigen Zustand zurückversetzen müssen (z. B. wenn Ihr Benutzer „Rückgängig“ anfordert), verwenden Sie das Memomuster.
7. Beobachtermuster (Beobachtermuster): Definieren Sie ein Paar zwischen Objekten. Mehrere Abhängigkeiten, sodass davon abhängige Objekte benachrichtigt und automatisch aktualisiert werden, wenn ein Objekt seinen Status ändert.
8. Statusmuster: Ermöglicht einem Objekt, sein Verhalten zu ändern Wenn sich sein interner Zustand ändert, sieht es so aus, als hätte es seine Klasse geändert.
9. Strategiemuster: Definiert eine Familie von Algorithmen und versiegelt sie separat, damit sie untereinander ersetzt werden können Verwendungszweck Clients von Algorithmen.
10. Vorlagenmethodenmuster (Vorlagenmuster): Definieren Sie das Grundgerüst eines Algorithmus in einer Methode und verschieben Sie einige Schritte auf Unterklassen. Vorlagenmethoden ermöglichen es Unterklassen, den Algorithmus zu ändern, ohne die Struktur des Algorithmus zu ändern Algorithmus. Definieren Sie als Nächstes einige Schritte im Algorithmus neu.
11. Besuchermuster: Wenn Sie einer Kombination von Objekten neue Funktionen hinzufügen möchten und die Kapselung nicht wichtig ist, verwenden Sie das Besuchermuster.


---------------------------------------- -------- ------------------------------------------ --------

Sieben Designprinzipien:

1. 단일 책임 원칙 [SINGLE RESPONSIBILITY PRINCIPLE]: 하나의 클래스가 하나의 책임을 담당합니다.
2. LISKOV 대체 원칙: 상속 및 파생의 규칙.
3. ]: 상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 합니다. 세부 사항은 추상화에 의존해서는 안 됩니다. 즉, 구현을 위한 프로그램이 아닌 인터페이스를 위한 프로그램입니다.
4. 인터페이스 분리 원칙 [INTERFACE SEGREGATION PRINCIPLE]: 단일 인터페이스를 구축하고, 거대하고 비대해진 인터페이스를 구축하지 말고, 인터페이스를 개선하려고 노력하고,
5. 데메테르의 법칙 [LOW OF DEMETER]: 낮은 결합, 높은 응집력
6. OPEN CLOSE 원칙: 클래스, 모듈, 기능과 같은 소프트웨어 엔터티는 다음과 같습니다. 확장을 위해 개방하고 수정을 위해 폐쇄.
7. 조합/집계 재사용 원칙(CARP): 재사용 원칙을 달성하려면 조합과 집합을 사용하고 상속 관계를 적게 사용하세요.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Gängige Designmuster in JavaNächster Artikel:Gängige Designmuster in Java