[JAVA] Modèle de conception ~ Méthode de modèle ~

1.Tout d'abord

Voici un résumé du ** modèle de méthode de modèle ** dans le modèle de conception du GoF.

2. Qu'est-ce que le modèle de méthode de modèle?

3. Exemple de diagramme de classes

TemplateMethod.PNG

4. Exemple de programme

C'est un programme qui affiche le nom, la puissance offensive et la puissance défensive du monstre.

4-1. Classe AbstractMonster

Ceci est une classe de modèle.

AbstractMonster.java


public abstract class AbstractMonster {

	public String name;
	public abstract int getAttack();
	public abstract int getDefense();

	public final void showInfo() {
		System.out.print("Nom:");
		System.out.println(name);
		System.out.print("Puissance offensive:");
		System.out.println(getAttack());
		System.out.print("Puissance défensive:");
		System.out.println(getDefense());
		System.out.println();
	}
}

4-2. Classe de slime

Une classe qui implémente les méthodes définies dans la classe AbstractMonster.

Slime.java


public class Slime extends AbstractMonster {

	public Slime(String name) {
		this.name = name;
	}

	public int getAttack() {
		return 15;
	}

	public int getDefense() {
		return 10;
	}
}

4-3. Classe de dragon

Une classe qui implémente les méthodes définies dans la classe AbstractMonster.

Dragon.java


public class Dragon extends AbstractMonster {

	public Dragon(String name) {
		this.name = name;
	}

	public int getAttack() {
		return 60;
	}

	public int getDefense() {
		return 45;
	}
}

4-4. Classe principale

Cette classe effectue le traitement principal.

Main.java


public class Main {
	public static void main(String[] args) {
		AbstractMonster slime = new Slime("Vase");
		AbstractMonster dragon = new Dragon("Dragon");
		slime.showInfo();
		dragon.showInfo();
	}
}

4-5. Résultat de l'exécution

Nom: Slime
Puissance d'attaque: 15
Puissance défensive: 10

Nom: Dragon
Puissance d'attaque: 60
Puissance défensive: 45

5. Avantages

Dans le modèle de méthode modèle, l'algorithme est décrit par la méthode modèle de la super classe, il n'est donc pas nécessaire de décrire l'algorithme un par un du côté de la sous-classe. Par exemple, si vous avez créé des classes similaires, Class1, Class2, Class3 ... sans utiliser le modèle de méthode modèle, et qu'un bogue est trouvé dans Class1, le bogue sera reflété dans Class2, Class3 ... Doit être. Si vous créez avec le modèle de méthode de modèle, même si vous trouvez un bogue dans la méthode de modèle, il vous suffit de corriger la méthode de modèle.

  1. GitHub

7. Liste des modèles de conception

8. Référence

Cet article et l'exemple de programme ont été créés à partir des livres suivants.

C'était très facile à comprendre et j'ai beaucoup appris. Je vous remercie. Les explications détaillées des modèles de conception et des exemples de programmes sont écrites, veuillez donc également consulter les livres.

Recommended Posts

Modèle de conception ~ Méthode de modèle ~
Modèle de méthode de modèle
Modèle de modèle de méthode
Modèle de conception mâché C #: TemplateMethod
Modèle de conception ~ Méthode d'usine ~
[Modèle de conception] Logique commune avec la méthode de modèle
Repenser les modèles d'expression et de conception de flux Java8 - Modèle de méthode
Modèle de conception Java pour débutant (modèle de méthode d'usine)
Modèle de conception ~ Constructeur ~
Modèle de conception ~ Visiteur ~
Modèle de conception Java
Modèle de conception ~ État ~
Modèle de conception ~ Stratégie ~
Modèle de conception ~ Singleton ~
Modèle de conception ~ Composite ~
Modèle de conception (2): constructeur
Modèle de conception ~ Commande ~
Modèle de conception ~ Itérateur ~
Modèle de conception ~ Façade ~
Modèle de conception ~ Médiateur ~
Modèle de conception ~ Décorateur ~
Modèle de conception ~ Interprète ~
Modèle de méthode d'usine
Modèle de conception ~ Observateur ~
Modèle de conception ~ Prototype ~
Modèle de conception ~ Adaptateur ~
Modèle de conception ~ Poids mouche ~
Modèle de conception C ++ (modèle TemplateMethod)
Modèle de conception ~ Usine abstraite ~
Résumé du modèle de conception du GoF
Résumé du modèle de conception Java
Modèle de conception ~ Chaîne de responsabilité ~
Point 51: Concevoir soigneusement les signatures de méthode
[Design pattern] Bibliothèque de base Java
Introduction aux modèles de conception (méthode d'usine)
Exemple d'application du modèle de conception (n ° 1)