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