ПАТТЕРН ПОСРЕДНИК PYTHON
Паттерн "Посредник" (Mediator) - это поведенческий паттерн проектирования, которым можно управлять взаимодействием множества объектов между собой. Вместо того, чтобы объекты взаимодействовали напрямую друг с другом, они взаимодействуют через специальный объект - посредник.
В Python можно реализовать паттерн "Посредник" с помощью классов. Например, рассмотрим моделирование работы авиадиспетчерской службы:
class Mediator: def __init__(self): self.flights = [] def register_flight(self, flight): self.flights.append(flight) def can_land(self, flight): for other_flight in self.flights: if other_flight != flight and other_flight.altitude >= 1000: return False return True def notify_landing(self, flight): self.flights.remove(flight) for other_flight in self.flights: other_flight.receive_message(flight.callsign + " has landed.") class Flight: def __init__(self, mediator, callsign, altitude): self.mediator = mediator self.callsign = callsign self.altitude = altitude mediator.register_flight(self) def receive_message(self, message): print(self.callsign + " received message: " + message) def land(self): if self.mediator.can_land(self): self.mediator.notify_landing(self) print(self.callsign + " landed.") else: print(self.callsign + " waiting for landing.")
В этом примере класс Mediator является посредником, который управляет взаимодействием объектов класса Flight. Класс Mediator хранит список зарегистрированных рейсов и имеет метод register_flight для регистрации новых рейсов. Метод can_land проверяет, доступна ли полоса для посадки текущего рейса (полоса должна быть свободна от других рейсов на высоте более 1000 метров). Если полоса свободна, метод notify_landing удаляет текущий рейс из списка рейсов посредника и отправляет сообщение о посадке оставшимся рейсам.
Класс Flight представляет отдельный рейс и имеет метод receive_message для приема сообщений от других рейсов. Метод land получает доступ к посреднику и пытается выполнить посадку. Если посадка удалась, метод удаляет текущий рейс из списка рейсов посредника и выводит сообщение о посадке. Если посадка не удалась, метод выводит сообщение о том, что рейс ожидает посадки.
Кодим Музыкальное desktop Приложение С НУЛЯ....(только на Шаблонах Проектирования)
Паттерны проектирования на Python: Паттерн Прототип
Паттерны проектирования на Python: Iterator, Mediator
ЛУЧШИЙ ПАТТЕРН ДЛЯ МИКРОСЕРВИСОВ. CQRS ИЛИ РАЗДЕЛЕНИЕ ЧТЕНИЯ И ЗАПИСИ
Python. Паттерн проектирования программ \
Парсинг на Python - Зарабатываем на фрилансе - Копируем сайт - Requests, BS4, JSON
Python парсинг динамических страниц сайтов с JavaScript Ajax
Мастер-класс: \
Принципы SOLID - На примере Python
Паттерн Mediator на Python
Новые материалы:
- Python передать функцию как параметр
- Компиляция python в apk
- Python коэффициент вариации
- C или python востребованность
- Python чекер прокси
- Pydantic python описание
- Python 19x линейные программы переменные огэ ответы
- Парсер instagram python
- Чистая функция python
- Ботнет на python
- Pygame как установить в pycharm