Maison >Java >javaDidacticiel >Explication détaillée du cas des modèles de conception Java 23 : modèle de méthode de modèle (avec code)

Explication détaillée du cas des modèles de conception Java 23 : modèle de méthode de modèle (avec code)

php是最好的语言
php是最好的语言original
2018-07-30 10:52:491594parcourir

Définir

Définir le cadre des opérations dans un algorithme, en reportant certaines étapes aux sous-classes. Cela permet aux sous-classes de redéfinir certaines étapes spécifiques de l'algorithme sans modifier la structure de l'algorithme.

Rôle

La division des rôles de ce modèle de conception est relativement simple

  • Classe de modèle abstrait

  • Classe de modèles concrets

La classe de modèles abstraits contient plusieurs méthodes : méthode modèle, méthode concrète, méthode abstraite et méthode hook.

  • Méthode Modèle

détermine les étapes de mise en œuvre de l'algorithme. Cette méthode appelle des méthodes spécifiques, des méthodes abstraites à implémenter et des méthodes hook attendent. . Il s'agit d'un modèle pour l'exécution d'algorithmes.

  • Méthodes concrètes

Les méthodes concrètes sont la partie la plus stable de l'algorithme, donc l'implémentation spécifique de la méthode est donnée dans la classe abstraite .

  • Méthode abstraite

La méthode abstraite est exactement ce que dit la définition : une méthode qui est retardée jusqu'à l'implémentation d'une sous-classe.

  • Méthode Hook

Les méthodes de modèle générales fourniront une implémentation par défaut, et les sous-classes remplaceront et réécriront cette méthode en fonction de la situation.

UML

Processus de mise en œuvre

/**
 * 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.}
/**
 * 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");
    }
}

Définition

Définir le cadre de fonctionnement dans un algorithme , tout en reportant certaines étapes aux sous-classes. Cela permet aux sous-classes de redéfinir certaines étapes spécifiques de l'algorithme sans modifier la structure de l'algorithme.

Rôle

La division des rôles de ce modèle de conception est relativement simple

  • Classe de modèle abstrait

  • Classe de modèles concrets

La classe de modèles abstraits contient plusieurs méthodes : la méthode modèle, la méthode concrète, la méthode abstraite et la méthode hook.

  • Méthode Modèle

détermine les étapes de mise en œuvre de l'algorithme. Cette méthode appelle des méthodes spécifiques, des méthodes abstraites à implémenter et des méthodes hook attendent. . Il s'agit d'un modèle pour l'exécution d'algorithmes.

  • Méthodes concrètes

Les méthodes concrètes sont la partie la plus stable de l'algorithme, donc l'implémentation spécifique de la méthode est donnée dans la classe abstraite .

  • Méthode abstraite

La méthode abstraite est exactement ce que dit la définition : une méthode qui est retardée jusqu'à l'implémentation d'une sous-classe.

  • Méthode Hook

Les méthodes de modèle générales fourniront une implémentation par défaut, et les sous-classes remplaceront et réécriront cette méthode en fonction de la situation.

UML

Processus d'implémentation

/**
 * 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.}
/**
 * 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");
    }
}

Articles connexes :

Conception Java Patterns - Six principes des modèles de conception

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

Vidéos associées :

Modèles de conception

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn