Back to questions
Junior — Middle
82
Можете объяснить, что означает создание экземпляра по шаблонному методу?
Companies where asked
ГК Адепт
Answer from AI
sobes.tech AI
Создание экземпляра по шаблонному методу (Template Method) — это паттерн проектирования, который определяет скелет алгоритма в базовом классе, а конкретные шаги алгоритма реализуются в подклассах.
То есть базовый класс содержит метод, который задаёт последовательность вызовов других методов (шаблон), часть из которых может быть абстрактными или виртуальными, чтобы подклассы могли их переопределить.
Пример на C++:
#include <iostream>
class AbstractClass {
public:
void TemplateMethod() {
Step1();
Step2();
Step3();
}
protected:
void Step1() { std::cout << "Общий шаг 1\n"; }
virtual void Step2() = 0; // Шаг, который реализует подкласс
void Step3() { std::cout << "Общий шаг 3\n"; }
};
class ConcreteClass : public AbstractClass {
protected:
void Step2() override {
std::cout << "Конкретная реализация шага 2\n";
}
};
int main() {
ConcreteClass obj;
obj.TemplateMethod();
return 0;
}
В этом примере TemplateMethod задаёт порядок вызова шагов, а конкретный шаг Step2 реализуется в подклассе. Это позволяет переиспользовать структуру алгоритма и изменять детали в подклассах.