[GO] Modèle de méthode de modèle en Java

introduction

Présentation des modèles de conception de [GoF](https://ja.wikipedia.org/wiki/Gang of for _ (Information Engineering)) ["Introduction aux modèles de conception appris dans le langage Java augmenté et révisé"]( https://www.amazon.co.jp/ Édition augmentée et révisée Introduction aux modèles de conception appris en langage Java-Yuki-Hiroshi / dp / 4797327030 / ref = pd_lpo_sbs_14_t_0? _ Encoding = UTF8 & psc = 1 & refRID = 2ZE4GPYNN55JGDR5QMHP) Je vais résumer sur.

Modèle de modèle

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

** Le modèle défini dans la superclasse pour le cadre de traitement et la sous-classe pour l'implémentation spécifique ** est appelé le ** modèle de méthode de modèle . Parmi ceux-ci, la " méthode qui définit le cadre de traitement **" dans la superclasse est ** TemplateMethod **.

Personnage

Les classes qui apparaissent dans le diagramme de classes ci-dessous sont utilisées dans le modèle TemplateMethod. image.png

Classe abstraite

Classe d'implémentation

Exemple concret

À titre d'exemple spécifique, l'explication sera basée sur "** Manuel de procédure ", " Manuel de procédure de travail A " et " Manuel de procédure de travail B **".

Classe abstraite

AbstractManual.java


package templateMethod;

public abstract class AbstractManual{
	public abstract void start();

	public abstract void work();

	public abstract void end();

	public final void operation() {
		start();
		for (int i = 0; i < 3; i++) {
			work();
		}
		end();
	}
}

Classe d'implémentation

OperationAManual.java


package templateMethod;

public class OperationAManual extends AbstractManual {
	private char ch;

	public OperationAManual(char ch) {
		this.ch = ch;
	}

	@Override
	public void start() {
		System.out.println("<<Travailler un début>>");
	}

	@Override
	public void work() {
		System.out.println(ch + "Est en train de traiter");
	}

	@Override
	public void end() {
		System.out.println("<<Travail A terminé>>");
	}
}

OperationBManual.java


package templateMethod;

public class OperationBManual extends AbstractManual {
	private String string;

	public OperationBManual(String string) {
		this.string = string;
	}

	@Override
	public void start() {
		System.out.println("**Commencer le travail B**");
	}

	@Override
	public void work() {
		System.out.println(string + "Est en train de traiter");
	}

	@Override
	public void end() {
		System.out.println("**Travail B terminé**");
	}
}

Classe d'exécution

Main.java


package templateMethod;

public class Main {
	public static void main(String[] args) {
		AbstractManual d1 = new OperationAManual('F');
		AbstractManual d2 = new OperationBManual("HelloWorld");
		d1.operation();
		d2.operation();
	}
}

Résultat d'exécution

Le résultat de l'exécution de Main.java est le suivant. J'ai appelé le même ʻoperation () `, mais je peux voir que la sortie est différente.

Résultat d'exécution


<<Travailler un début>>
Traitement F
Traitement F
Traitement F
<<Travail A terminé>>
**Commencer le travail B**
Traitement Hello World
Traitement Hello World
Traitement Hello World
**Travail B terminé**

mérite

En utilisant le modèle TemplateMethod, le cadre de traitement peut être normalisé. En faisant cela, il est possible d'empêcher plusieurs travailleurs de créer à partir du cadre de traitement comme ils le souhaitent, et les parties qui devraient être uniformes ne sont pas uniformes.

Résumé

Vous avez découvert le modèle de méthode de modèle qui définit le squelette du processus. L'exemple de code est téléchargé ci-dessous, veuillez donc vous y référer si vous le souhaitez.

En outre, d'autres modèles de conception sont résumés ci-dessous, veuillez donc vous y référer également.

Les références

Recommended Posts

Modèle de méthode de modèle en Java
Modèle de façade en Java
Motif singleton en Java
Modèle de poids mouche en Java
Modèle d'observateur en Java
Modèle d'itérateur en Java
[Explication détaillée] Modèle de méthode de modèle
Modèle de décorateur en Java
Design Pattern #Template, méthode
Modèle de prototype en Java
Modèle de proxy en Java
Apprenez le modèle de conception "Méthode de modèle" en Python
Python Design Pattern - Méthode de modèle
Modèle de chaîne de responsabilité en Java
Apprenez le modèle de conception "Méthode d'usine" en Python
[Gang of Four] Apprentissage des modèles de conception - Méthode du modèle
Motif singleton en Python
Autorisations Linux sur Java
Utiliser DataFrame en Java
Design Pattern #Factory, méthode
Modèle de visiteur en Python
Méthode Simplex (méthode unique) en Python
Méthode privée en python
J'ai écrit un modèle de conception dans l'édition de modèle kotlin
Remplacer la méthode save de django-models
Suppression des substitutions de méthode en Python
Afficher Django ManyToManyField dans un modèle
Détectez et traitez les signaux en Java.
Utilisez le modèle jinja2 dans un fichier Excel
Implémentation de la méthode de propagation d'étiquettes en Python
Mise en œuvre du tri à bulles en Java (BubbleSort)
Résumé du modèle de conception Java GoF