Heim  >  Artikel  >  Java  >  Detaillierte Fallerklärung des Java 23-Entwurfsmusters: Vorlagenmethodenmuster (mit Code)

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

php是最好的语言
php是最好的语言Original
2018-07-30 10:52:491526Durchsuche

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