Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: mediator, pattern, design, arhitecture

Что такое паттерн Посредник (Mediator)?

Паттерн Посредник используется для упрощения взаимодействий между множеством объектов, убирая прямые связи между ними.

Короткий ответ

Паттерн Посредник вводит объект-посредник, который управляет взаимодействием между другими объектами, снижая их взаимозависимость.

Длинный ответ

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

Пример из реальной жизни:
Диспетчер в аэропорту координирует действия самолётов: они взаимодействуют не напрямую, а через диспетчера.

Реализация в Python:

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

class ConcreteMediator(Mediator):
    	def __init__(self):
        	self.component1 = None
        	self.component2 = None

    	def notify(self, sender, event):
        	if event == "Event1":
            		print("Mediator реагирует на Event1 и вызывает Component2.")
            		self.component2.do_something()
        	elif event == "Event2":
            		print("Mediator реагирует на Event2 и вызывает Component1.")
            		self.component1.do_something_else()

class Component1:
    	def __init__(self, mediator):
        	self.mediator = mediator

    	def do_something(self):
        	print("Component1 вызывает событие.")
        	self.mediator.notify(self, "Event1")

    	def do_something_else(self):
        	print("Component1 делает что-то другое.")

class Component2:
    	def __init__(self, mediator):
        	self.mediator = mediator

    	def do_something(self):
        	print("Component2 вызывает событие.")
        	self.mediator.notify(self, "Event2")

# Использование
mediator = ConcreteMediator()
component1 = Component1(mediator)
component2 = Component2(mediator)
mediator.component1 = component1
mediator.component2 = component2

component1.do_something()
component2.do_something()

Когда использовать:

  • Для координации взаимодействий между объектами без создания жёстких связей.

  • В сложных системах, где взаимодействие между компонентами усложняет поддержку кода.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    8

Навыки

  • Python

    Python

Ключевые слова

#mediator

#pattern

#design

#arhitecture

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.