ПАТТЕРН НАБЛЮДАТЕЛЬ PYTHON
Паттерн Наблюдатель (Observer) в Python позволяет определять зависимость типа один-ко-многим между объектами таким образом, что при изменении состояния одного объекта, все зависимые от него объекты оповещаются об этом и автоматически обновляются.
Для реализации паттерна необходимо создать две основные сущности: <Subject> и <Observer>. Subject представляет некий объект, состояние которого может изменяться и на которое могут быть подписаны другие объекты – наблюдатели. Observer, в свою очередь, представляет объект, который хочет наблюдать за состоянием объекта Subject.
Пример кода реализации паттерна:
class Subject: def __init__(self): self.__observers = [] def register(self, observer): self.__observers.append(observer) def notifyAll(self, *args, **kwargs): for observer in self.__observers: observer.notify(self, *args, **kwargs)class Observer1: def __init__(self): pass def notify(self, subject, *args): print(type(self).__name__, subject.getState(), *args)class Observer2: def __init__(self): pass def notify(self, subject, *args): print(type(self).__name__, subject.getState(), *args)class Subject: def __init__(self): self.__observers = [] self.__state = 0 def getState(self): return self.__state def setState(self, arg): self.__state = arg self.notifyAll() def register(self, observer): self.__observers.append(observer) def notifyAll(self, *args, **kwargs): for observer in self.__observers: observer.notify(self, *args, **kwargs)
Как видно из кода, мы определили наблюдателей Observer1 и Observer2, а также субъект Subject, который может отправлять уведомления о своем состоянии, на которые будут реагировать определенные наблюдатели.
Таким образом, паттерн Наблюдатель позволяет создать гибкой систему взаимодействия между объектами, где каждый объект может изменять свое состояние независимо, а другие объекты будут автоматически уведомляться об этом и реагировать соответствующим образом.
Паттерн Observer на Python
Шаблон проектирования Наблюдатель / Observer
Design Patterns em Python - Observer
Python. Паттерн проектирования программ \
Observer Pattern – Design Patterns (ep 2)
Python - OOP - Observer Pattern
Observer Pattern - Event Driven Design in Python - Intermediate OOP
Новые материалы:
- Иннополис курсы python
- Python count метод
- Интерактивная подсказка python
- Как вывести список без скобок в python
- Модуль android python
- Python проверка на пустоту списка
- Неизменяемый список python
- Python шифрование строки
- Прогнозирование временных рядов python
- Python сортировка по дате
- Как вывести нечетные числа в python
- Перебор всех возможных вариантов python
- Python детектор движения