Junior — Middle
Pouvez-vous expliquer ce que signifie créer une instance selon la méthode modèle?
sobes.tech IA
Réponse de l'IA
La création d'une instance par la méthode modèle (Template Method) est un patron de conception qui définit la structure de l'algorithme dans une classe de base, et les étapes spécifiques de l'algorithme sont implémentées dans les sous-classes.
Autrement dit, la classe de base contient une méthode qui établit la séquence d'appels à d'autres méthodes (modèle), dont certaines peuvent être abstraites ou virtuelles pour que les sous-classes puissent les redéfinir.
Exemple en C++ :
#include <iostream>
class AbstractClass {
public:
void TemplateMethod() {
Step1();
Step2();
Step3();
}
protected:
void Step1() { std::cout << "Étape générale 1\n"; }
virtual void Step2() = 0; // Étape implémentée par la sous-classe
void Step3() { std::cout << "Étape générale 3\n"; }
};
class ConcreteClass : public AbstractClass {
protected:
void Step2() override {
std::cout << "Implémentation concrète de l'étape 2\n";
}
};
int main() {
ConcreteClass obj;
obj.TemplateMethod();
return 0;
}
Dans cet exemple, TemplateMethod définit l'ordre des étapes, et l'étape concrète Step2 est implémentée dans la sous-classe. Cela permet de réutiliser la structure de l'algorithme et de modifier les détails dans les sous-classes.