Back to questions
Junior — Middle
60
Можешь перечислить основные поведенческие паттерны, используемые в разработке программных систем?
Answer from AI
sobes.tech AI
Основные поведенческие паттерны проектирования, часто используемые в разработке:
- Стратегия (Strategy) — позволяет выбирать алгоритм во время выполнения.
- Наблюдатель (Observer) — обеспечивает уведомление зависимых объектов об изменениях.
- Команда (Command) — инкапсулирует запрос как объект, позволяя параметризовать клиентов.
- Итератор (Iterator) — предоставляет способ последовательного доступа к элементам коллекции.
- Состояние (State) — позволяет объекту изменять поведение при изменении внутреннего состояния.
- Посредник (Mediator) — централизует взаимодействие между объектами.
- Шаблонный метод (Template Method) — определяет скелет алгоритма, позволяя подклассам переопределять шаги.
Пример паттерна "Стратегия" на Python:
class Strategy:
def execute(self, data):
pass
class ConcreteStrategyA(Strategy):
def execute(self, data):
return sorted(data)
class ConcreteStrategyB(Strategy):
def execute(self, data):
return sorted(data, reverse=True)
class Context:
def __init__(self, strategy):
self.strategy = strategy
def do_something(self, data):
return self.strategy.execute(data)
context = Context(ConcreteStrategyA())
print(context.do_something([3,1,2])) # [1, 2, 3]
context.strategy = ConcreteStrategyB()
print(context.do_something([3,1,2])) # [3, 2, 1]