Sobes.tech
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]