Heim > Java > javaLernprogramm > Java-Entwurfsmuster: Beispielanalyse für Vorlagenmethodenmuster

Java-Entwurfsmuster: Beispielanalyse für Vorlagenmethodenmuster

WBOY
Freigeben: 2023-04-23 16:07:07
nach vorne
1044 Leute haben es durchsucht

Template Method Pattern

Template Method Pattern (Template Method) definiert das Algorithmusgerüst in einer Operation und verzögert einige Schritte des Algorithmus in Unterklassen, sodass Unterklassen die Algorithmusstruktur nicht neu definieren können der Algorithmus. Template Method)定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。

模板方法模式包含以下主要角色:

  • 抽象类(Abstract Class):负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。

    • 抽象方法(Abstract Method) :一个抽象方法由抽象类声明、由其具 体子类实现。

    • 具体方法(Concrete Method) :一个具体方法由一个抽象类或具体类声明并实现,其子类可以进行覆盖也可以直接继承。

    • 钩子方法(Hook Method) :在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。一般钩子方法是用于判断的逻辑方法,这类方法名一般为isXxx,返回值类型为boolean类型。

    • 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。

    • 基本方法:是实现算法各个步骤的方法。基本方法又可以分为三种:

  • 具体子类(Concrete Class

  • Das Vorlagenmethodenmuster enthält die folgenden Hauptrollen:

  • Abstrakte Klasse (Abstrakte Klasse): Verantwortlich für die Bereitstellung der Gliederung eines Algorithmus und Skeletts. Es besteht aus einer Vorlagenmethode und mehreren Grundmethoden.
    • Abstrakte Methode (Abstrakte Methode): Eine abstrakte Methode wird von einer abstrakten Klasse deklariert und von ihrer konkreten Unterklasse implementiert.

    • Java-Entwurfsmuster: Beispielanalyse für VorlagenmethodenmusterKonkrete Methode (Konkrete Methode): Eine konkrete Methode wird von einer abstrakten Klasse oder konkreten Klasse deklariert und implementiert, und ihre Unterklassen können direkt überschreiben oder erben.

    • Hook-Methode (Hook-Methode): Sie wurde in der abstrakten Klasse implementiert, einschließlich logischer Methoden zur Beurteilung und leerer Methoden, die von Unterklassen neu geschrieben werden müssen. Die allgemeine Hook-Methode ist eine logische Methode zur Beurteilung. Der Name dieser Methode lautet im Allgemeinen isXxx und der Rückgabewerttyp ist boolesch.
    • Template-Methode: Definiert das Grundgerüst des Algorithmus und ruft seine Grundmethoden in einer bestimmten Reihenfolge auf.


    • Grundlegende Methode: Dies ist die Methode zur Implementierung jedes Schritts des Algorithmus. Grundlegende Methoden können in drei Typen unterteilt werden:



    • Konkrete Unterklasse (Konkrete Klasse): Implementiert die in der abstrakten Klasse definierten abstrakten Methoden und Hook-Methoden, bei denen es sich um eine logische Komposition der obersten Ebene handelt Schritte.




      【Fall】
    • Die Schritte zum Pfannenrühren sind festgelegt und in Schritte wie das Eingießen von Öl, das Erhitzen von Öl, das Eingießen von Gemüse, das Eingießen von Gewürzen und das Anbraten unterteilt. Sie können aber auch verschiedene Gemüsesorten und verschiedene Soßen hinzufügen. Verwenden Sie nun den Vorlagenmethodenmodus, um es mit Code zu simulieren ------ ------Das Öl einfüllen. Das Öl erhitzen. Den Kohl hinzufügen. Salz und MSG hinzufügen. Anbraten und unter Rühren anbraten. Der Vorgang ist mit Exit-Code 0 abgeschlossen. Vorteile und Nachteile des Vorlagenmethodenmusters

      Vorteile:

      1. Verbessern Sie die Wiederverwendbarkeit des Codes, fügen Sie denselben Teil des Codes in die abstrakte übergeordnete Klasse ein und fügen Sie unterschiedliche Codes in verschiedene Unterklassen ein. 2. Eine übergeordnete Klasse ruft die Operation ihrer Unterklasse auf, und unterschiedliche Verhaltensweisen werden durch die spezifische Implementierung der Unterklasse erweitert und entsprechen dem „Öffnungs- und Schließprinzip“.

      Nachteile:

      1. Jede unterschiedliche Implementierung muss eine Unterklasse definieren, was zu einer Erhöhung der Anzahl der Klassen, einem größeren System und einem abstrakteren Design führt. 2. Die abstrakten Methoden in der übergeordneten Klasse werden von der Unterklasse implementiert, und das Ausführungsergebnis der Unterklasse wirkt sich auf das Ergebnis der übergeordneten Klasse aus, was zu einer umgekehrten Kontrollstruktur führt, was die Schwierigkeit beim Lesen des Codes erhöht.

      Verwendungsszenarien

      1 Die Gesamtschritte des Algorithmus sind sehr fest, aber wenn einzelne Teile flüchtig sind, können Sie das Vorlagenmethodenmuster verwenden, um die leicht variablen Teile für die Implementierung durch Unterklassen zu abstrahieren.

      2. Es ist notwendig, mithilfe der Unterklasse zu entscheiden, ob ein bestimmter Schritt im Algorithmus der übergeordneten Klasse ausgeführt wird, um die umgekehrte Steuerung der übergeordneten Klasse durch die Unterklasse zu realisieren.

Das obige ist der detaillierte Inhalt vonJava-Entwurfsmuster: Beispielanalyse für Vorlagenmethodenmuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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