forked from pkolt/design_patterns
-
Notifications
You must be signed in to change notification settings - Fork 0
/
template_method.py
43 lines (29 loc) · 1.13 KB
/
template_method.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# coding: utf-8
"""
Шаблонный метод (Template method) - паттерн поведения классов.
Шаблонный метод определяет основу алгоритма и позволяет подклассам переопределить некоторые шаги алгоритма,
не изменяя его структуру в целом.
"""
class ExampleBase(object):
def template_method(self):
self.step_one()
self.step_two()
self.step_three()
def step_one(self):
raise NotImplementedError()
def step_two(self):
raise NotImplementedError()
def step_three(self):
raise NotImplementedError()
class Example(ExampleBase):
def step_one(self):
print 'Первый шаг алгоритма'
def step_two(self):
print 'Второй шаг алгоритма'
def step_three(self):
print 'Третий шаг алгоритма'
example = Example()
example.template_method()
# Первый шаг алгоритма
# Второй шаг алгоритма
# Третий шаг алгоритма