-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontext.py
More file actions
25 lines (20 loc) · 984 Bytes
/
Copy pathcontext.py
File metadata and controls
25 lines (20 loc) · 984 Bytes
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
class Context:
"""Контекст для паттерна Стратегия"""
# Атрибуты класса для тестов
numbers = None
sorting_algorithm = None
def __init__(self):
self.numbers = [] # Список чисел для сортировки
self.sorting_algorithm = None # Текущая стратегия сортировки
def sort(self):
"""
Выполняет сортировку с использованием текущей стратегии
:return: отсортированный список
"""
if self.sorting_algorithm is None:
raise ValueError("Стратегия сортировки не установлена")
if self.numbers is None:
return None
# Вызываем perform_sort, который изменит self.numbers
self.sorting_algorithm.perform_sort(self.numbers)
return self.numbers