suchen
HeimJavajavaLernprogrammDetaillierte Fallerklärung des Java 23-Entwurfsmusters: Vorlagenmethodenmuster (mit Code)

Definieren Sie

Definieren Sie den Rahmen der Operationen in einem Algorithmus und verschieben Sie einige Schritte auf Unterklassen. Dadurch können Unterklassen bestimmte spezifische Schritte des Algorithmus neu definieren, ohne die Algorithmusstruktur zu ändern.

Rolle

Die Rollenaufteilung dieses Entwurfsmusters ist relativ einfach

  • Abstrakte Vorlagenklasse

  • Konkrete Vorlagenklasse

Die abstrakte Vorlagenklasse enthält mehrere Methoden: Vorlagenmethode, konkrete Methode, abstrakte Methode und Hook-Methode.

  • Vorlagenmethode

bestimmt die Implementierungsschritte des Algorithmus. Diese Methode ruft spezifische Methoden, zu implementierende abstrakte Methoden und Hook-Methoden auf . Es handelt sich um eine Vorlage für die Algorithmusausführung.

  • Konkrete Methoden

Konkrete Methoden sind der stabilere Teil des Algorithmus, daher ist die spezifische Implementierung der Methode in der abstrakten Klasse angegeben .

  • Abstrakte Methode

Abstrakte Methode ist genau das, was die Definition besagt, eine Methode, die auf die Implementierung einer Unterklasse verzögert wird.

  • Hook-Methode

Allgemeine Vorlagenmethoden stellen eine Standardimplementierung bereit, und Unterklassen überschreiben und schreiben diese Methode je nach Situation neu.

UML

Implementierungsprozess

/**
 * Created by tiantian on 2018/7/28
 */public abstract class AbstractTemplateMethod {

    public void templateMethod() {
        implementedMethod();
        abstractMethod();
        hookMethod();        // ... more than method invoke
    }    public void anotherTemplateMethod() {        // do other things
    }    public abstract void abstractMethod();    public void hookMethod() {}    public void implementedMethod() {
        System.out.println("I have been implemented in TemplateMethod class.");
    }    // ... more than method abstract or implemented.}
rrree

Definition

Definieren Sie das Operationsframework in einem Algorithmus und einige Schritte zu Unterklassen. Dadurch können Unterklassen bestimmte spezifische Schritte des Algorithmus neu definieren, ohne die Algorithmusstruktur zu ändern.

Rolle

Die Rollenaufteilung dieses Entwurfsmusters ist relativ einfach

  • Abstrakte Vorlagenklasse

  • Konkrete Vorlagenklasse

Die abstrakte Vorlagenklasse enthält mehrere Methoden: Vorlagenmethode, konkrete Methode, abstrakte Methode und Hook-Methode.

  • Vorlagenmethode

bestimmt die Implementierungsschritte des Algorithmus. Diese Methode ruft spezifische Methoden, zu implementierende abstrakte Methoden und Hook-Methoden auf . Es handelt sich um eine Vorlage für die Algorithmusausführung.

  • Konkrete Methoden

Konkrete Methoden sind der stabilere Teil des Algorithmus, daher ist die spezifische Implementierung der Methode in der abstrakten Klasse angegeben .

  • Abstrakte Methode

Abstrakte Methode ist genau das, was die Definition besagt, eine Methode, die auf die Implementierung einer Unterklasse verzögert wird.

  • Hook-Methode

Allgemeine Vorlagenmethoden stellen eine Standardimplementierung bereit, und Unterklassen überschreiben und schreiben diese Methode je nach Situation neu.

UML

Implementierungsprozess

/**
 * Created by tiantian on 2018/7/28
 */public class ConcreteTempleteMethod extends AbstractTemplateMethod {
    @Override
    public void abstractMethod() {
        System.out.println("Do something");
    }    @Override
    public void hookMethod() {
        System.out.println("Do something in hookMethod");
    }
}
/**
 * Created by tiantian on 2018/7/28
 */public abstract class AbstractTemplateMethod {

    public void templateMethod() {
        implementedMethod();
        abstractMethod();
        hookMethod();        // ... more than method invoke
    }    public void anotherTemplateMethod() {        // do other things
    }    public abstract void abstractMethod();    public void hookMethod() {}    public void implementedMethod() {
        System.out.println("I have been implemented in TemplateMethod class.");
    }    // ... more than method abstract or implemented.}

Verwandte Artikel:

Java Design Patterns - Design Patterns Six Prinzipien

JAVA Design Pattern Factory Pattern (Simple Factory Pattern + Factory Method Pattern)

Ähnliche Videos:

Design Pattern

Das obige ist der detaillierte Inhalt vonDetaillierte Fallerklärung des Java 23-Entwurfsmusters: Vorlagenmethodenmuster (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, SvelteTop 4 JavaScript -Frameworks in 2025: React, Angular, Vue, SvelteMar 07, 2025 pm 06:09 PM

Dieser Artikel analysiert 2025 die vier besten JavaScript -Frameworks (React, Angular, Vue, Svelte) und verglichen ihre Leistung, Skalierbarkeit und Zukunftsaussichten. Während alle aufgrund starker Gemeinschaften und Ökosysteme dominant bleiben, sind ihr relatives Popul

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Problem behobenSpring Boot Snakeyaml 2.0 CVE-2022-1471 Problem behobenMar 07, 2025 pm 05:52 PM

Dieser Artikel befasst sich mit der Verwundbarkeit von CVE-2022-1471 in Snakeyaml, einem kritischen Fehler, der die Ausführung von Remote-Code ermöglicht. Es wird beschrieben

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

Node.js 20: wichtige Leistungssteigerung und neue FunktionenNode.js 20: wichtige Leistungssteigerung und neue FunktionenMar 07, 2025 pm 06:12 PM

Node.js 20 verbessert die Leistung durch V8 -Motorverbesserungen erheblich, insbesondere durch schnellere Müllsammlung und E/A. Zu den neuen Funktionen gehören eine bessere Support von WebAssembly und raffinierte Debugging -Tools, die Produktivität der Entwickler und die Anwendungsgeschwindigkeit.

ICEBERG: Die Zukunft von Data Lake TabellenICEBERG: Die Zukunft von Data Lake TabellenMar 07, 2025 pm 06:31 PM

Iceberg, ein offenes Tabellenformat für große analytische Datensätze, verbessert die Leistung und Skalierbarkeit von Data Lake. Es befasst sich mit Einschränkungen von Parquet/ORC durch internes Metadatenmanagement und ermöglicht eine effiziente Schemaentwicklung, Zeitreisen, gleichzeitiger W

Wie kann ich funktionale Programmierungstechniken in Java implementieren?Wie kann ich funktionale Programmierungstechniken in Java implementieren?Mar 11, 2025 pm 05:51 PM

In diesem Artikel wird die Integration der funktionalen Programmierung in Java unter Verwendung von Lambda -Ausdrücken, Streams -API, Methodenreferenzen und optional untersucht. Es zeigt Vorteile wie eine verbesserte Lesbarkeit der Code und die Wartbarkeit durch SUKTIVE UND VERUSNAHMETALITÄT

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor