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

Что такое паттерн Медиатор

Паттерн Медиатор — это поведенческий паттерн проектирования, который уменьшает связанность между компонентами системы, перенося их взаимодействие в отдельный объект-посредник. Вместо прямого общения друг с другом, компоненты взаимодействуют через медиатор, что упрощает поддержку и изменение кода.

Пример на Python:

python
class Mediator:
    def notify(self, sender, event):
        pass

class ConcreteMediator(Mediator):
    def __init__(self, component1, component2):
        self._component1 = component1
        self._component1.mediator = self
        self._component2 = component2
        self._component2.mediator = self
text
def notify(self, sender, event):
    if event == "A":
        self._component2.do_c()
    elif event == "D":
        self._component1.do_b()

class BaseComponent:
def init(self):
self._mediator = None

text
@property
def mediator(self):
    return self._mediator

@mediator.setter
def mediator(self, mediator):
    self._mediator = mediator

class Component1(BaseComponent):
def do_a(self):
print("Component 1 does A.")
self.mediator.notify(self, "A")

text
def do_b(self):
    print("Component 1 does B.")

class Component2(BaseComponent):
def do_c(self):
print("Component 2 does C.")

text
def do_d(self):
    print("Component 2 does D.")
    self.mediator.notify(self, "D")
text

Используется, когда нужно уменьшить связанность множества классов между собой. Например, в GUI-фреймворках или чат-приложениях.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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