Heim > Java > javaLernprogramm > Hauptteil

Die Verkörperung klassischer Designmuster im JDK

巴扎黑
Freigeben: 2016-11-26 09:18:52
Original
1614 Leute haben es durchsucht

1.Singleton (Einzelfall)
Funktion: Stellen Sie sicher, dass die Klasse nur eine Instanz hat; stellen Sie einen globalen Zugriffspunkt bereit
Reflektiert im JDK:
(1) Laufzeit
(2) NumberFormat

2.Factory (statische Fabrik)
Funktion:
(1) Objekte anstelle von Konstruktoren erstellen
(2) Methodennamen sind klarer als Konstruktoren
Reflektiert im JDK:
(1) Integer.valueOf
(2) Class.forName

3.Factory-Methode (Fabrikmethode)
Funktion: Unterklasse bestimmt welche Klasseninstanziierung
Reflektiert im JDK: Collection.iterator-Methode

4. Abstrakte Fabrik (Abstract Factory)
Funktion: Erstellen eines bestimmten Objekttyps
Reflektiert im JDK :
(1) java.sql-Paket
(2) UIManager (Swing-Erscheinungsbild)

5.Builder (Konstruktor)
Funktion:
( 1 ) Fügen Sie die Konstruktionslogik in eine separate Klasse ein
(2) Trennen Sie die Konstruktionslogik und die Leistung der Klasse
Reflektiert im JDK: DocumentBuilder (org.w3c.dom)

6.Prototyp (Prototyp)
Funktion:
(1) Objekt kopieren
(2) Flache Kopie, tiefe Kopie
Spiegelt im JDK: Object.clone; Cloneable

7.Adapter (Adapter)
Funktion: Inkompatible Schnittstellen kompatibel machen
Reflektiert im JDK:
(1) java.io.InputStreamReader (InputStream)
(2) java.io .OutputStreamWriter(OutputStream)

8.Bridge (Brücke)
Funktion: Trennen Sie den abstrakten Teil von seinem Implementierungsteil, damit sie sich unabhängig ändern können
JDK Reflektiert in: Handler und Formatter in java.util.logging

9.Composite (Kombination)

Funktion: Kombinierte Objekte und unabhängige Objekte konsistent behandeln
Im JDK widergespiegelt:
(1) org.w3c.dom
(2) javax.swing.JComponent#add(Component)

10.Decorator (Dekorator)

Funktion : Neue Funktionen zu Klassen hinzufügen; explosives Wachstum durch Klassenvererbung verhindern
Spiegelt im JDK:
(1) java.io-Paket
(2) java.util .Collections#synchronizedList(List)

11. Fassade (Erscheinungsbild)

Funktion:
(1) Eine Reihe interaktiver Klassen kapseln und konsistent Schnittstellen zur Außenwelt bereitstellen
(2) Kapseln Subsysteme und vereinfachen Subsystemaufrufe
Im JDK reflektiert: java.util.logging-Paket

12.Flyweight (Fliegengewicht)

Funktion: Objekte teilen, Speicher sparen
Spiegelt im JDK:
(1) Integer.valueOf(int i); Character.valueOf(char c)
(2) String-Konstantenpool

14. Proxy (Proxy)
Funktion:
(1) Rufen Sie das Proxy-Objekt transparent auf, ohne die komplexen Implementierungsdetails zu kennen
(2) Erhöhen Sie die Funktion der Proxy-Klasse
Spiegelt im JDK: dynamischer Proxy;

15.Iterator (Iterator)

Funktion: Trennen Sie die Iteration der Sammlung von der Sammlung selbst
Spiegelt im JDK: Iterator, Enumerationsschnittstelle

16. Beobachter (Observer)
Funktion: Objektstatusänderungen benachrichtigen
Reflektiert im JDK:
(1) java.util, Observable
(2) Listener in Swing

17.Mediator (Koordinator)
Funktion: Wird verwendet, um die Operationen mehrerer Klassen zu koordinieren
In JDK Reflected: Swing's ButtonGroup

18.Template-Methode (Vorlagenmethode)
Funktion: Definieren Sie die Struktur des Algorithmus, Unterklassen implementieren nur verschiedene Teile
Spiegelt im JDK: ThreadPoolExecutor .Worker

19.Strategie (Strategie)
Funktion: Bereitstellung verschiedener Algorithmen
Reflektiert im JDK: Vier Ablehnungsstrategien in ThreadPoolExecutor

20.Verantwortungskette (Chain of Responsibility)
Funktion: Die Anfrage wird von den Objekten in der Kette verarbeitet, aber der Client weiß nicht, von welchen Objekten die Anfrage verarbeitet wird
Im JDK widergespiegelt:
(1) java.util.logging. Logger delegiert das Protokoll an den übergeordneten Logger
(2) ClassLoader-Delegierungsmodell

21.Befehl (Befehl)
Funktionen:
(1) Kapseln Sie Vorgänge an Machen Sie die Schnittstelle konsistent )
Funktion: Nicht jedes Mal auf Null prüfen, Nullwert als Objekt mit derselben Schnittstelle behandeln
Spiegelt im JDK: Collections.EMPTY_LIST

23.Interpreter (Interpreter)
Funktion: Verwenden Sie eine Reihe von Klassen, um eine bestimmte Regel darzustellen
Spiegelt im JDK: java.util.regex.Pattern

Klassendiagramm: vier arithmetische Operationen


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage