SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: python
An important characteristic of the Template Method is that it is defined in the base class and cannot be changed. It’s sometimes a private method but it’s virtually always final. It calls other base-class methods (the ones you override) in order to do its job, but it is usually called only as part of an initialization process (and thus the client programmer isn’t necessarily able to call it directly):
# AppFrameworks/TemplateMethod.py # Simple demonstration of Template Method. class ApplicationFramework: def __init__(self): self.__templateMethod() def __templateMethod(self): for i in range(5): self.customize1() self.customize2() # Create an "application": class MyApp(ApplicationFramework): def customize1(self): print("Nudge, nudge, wink, wink! ",) def customize2(self): print("Say no more, Say no more!") MyApp()
The base-class constructor is responsible for performing the necessary initialization and then starting the “engine” (the template method) that runs the application (in a GUI application, this “engine” would be the main event loop). The client programmer simply provides definitions for customize1( ) and customize2( ) and the “application” is ready to run.
We’ll see Template Method numerous other times throughout the book.