Встречается на собеседованиях • сегодня

Какие знаешь поведенческие паттерны проектирования

Поведенческие паттерны решают задачи эффективного взаимодействия объектов. Основные из них:

  1. Chain of Responsibility – передача запроса по цепочке обработчиков.
python
class Handler:
    def __init__(self, successor=None):
        self._successor = successor
    
    def handle(self, request):
        if self._successor:
            self._successor.handle(request)
  1. Command – инкапсуляция запроса в объект.
python
class Command:
    def execute(self): pass

class LightOnCommand(Command):
    def execute(self):
        print("Light is ON")
  1. Iterator – последовательный доступ к элементам коллекции.
python
class Iterator:
    def __next__(self): pass

class ListIterator(Iterator):
    def __next__(self):
        # реализация
  1. Observer – подписка на события.
python
class Subject:
    def __init__(self):
        self._observers = []
    
    def notify(self):
        for observer in self._observers:
            observer.update()
  1. Strategy – выбор алгоритма во время выполнения.
python
class Strategy:
    def execute(self): pass

class FastStrategy(Strategy):
    def execute(self):
        print("Fast execution")
  1. State – изменение поведения при изменении состояния.
python
class State:
    def handle(self): pass

class ConcreteStateA(State):
    def handle(self):
        print("State A handling")
  1. Visitor – добавление операций без изменения классов.
python
class Visitor:
    def visit(self, element): pass

class ConcreteVisitor(Visitor):
    def visit(self, element):
        element.accept(self)

Также существуют: Mediator, Memento, Template Method, Interpreter. Паттерны помогают сделать код гибким и расширяемым.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы