Встречается на 1% собеседований по Python
Какие знаешь поведенческие паттерны проектирования
Поведенческие паттерны решают задачи эффективного взаимодействия объектов. Основные из них:
- 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)- Command – инкапсуляция запроса в объект.
python
class Command:
def execute(self): pass
class LightOnCommand(Command):
def execute(self):
print("Light is ON")- Iterator – последовательный доступ к элементам коллекции.
python
class Iterator:
def __next__(self): pass
class ListIterator(Iterator):
def __next__(self):
# реализация- Observer – подписка на события.
python
class Subject:
def __init__(self):
self._observers = []
def notify(self):
for observer in self._observers:
observer.update()- Strategy – выбор алгоритма во время выполнения.
python
class Strategy:
def execute(self): pass
class FastStrategy(Strategy):
def execute(self):
print("Fast execution")- State – изменение поведения при изменении состояния.
python
class State:
def handle(self): pass
class ConcreteStateA(State):
def handle(self):
print("State A handling")- Visitor – добавление операций без изменения классов.
python
class Visitor:
def visit(self, element): pass
class ConcreteVisitor(Visitor):
def visit(self, element):
element.accept(self)Также существуют: Mediator, Memento, Template Method, Interpreter. Паттерны помогают сделать код гибким и расширяемым.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы