Паттерн для мониторинга изменения состояния объекта, есть ли? Ребят нужен паттерн реализовав который можно получить объект который мониторит изменение своего состояния. К примеру есть класс Person и я хочу что бы когда у этого класса все поля заполнены он автоматически вызывал метод к примеру send()
Возможно ли это?

21 Авг 2019 в 07:01
196 +1
0
Ответы
1

Да, такой паттерн называется Observer (Наблюдатель). В данном случае вы можете создать класс, реализующий этот паттерн, который будет наблюдать за изменением состояния объекта Person.

Пример реализации:

class Person:
def __init__(self):
self.name = None
self.age = None
self.observers = []
def add_observer(self, observer):
self.observers.append(observer)
def set_name(self, name):
self.name = name
self.notify()
def set_age(self, age):
self.age = age
self.notify()
def notify(self):
if self.name is not None and self.age is not None:
for observer in self.observers:
observer.send()
class Observer:
def __init__(self, person):
self.person = person
def send(self):
print("Sending notification...")
# Пример использования
person = Person()
observer = Observer(person)
person.add_observer(observer)
person.set_name("Alice")
person.set_age(25)

В данном примере, объект класса Person может иметь несколько наблюдателей (observers), которые будут уведомлены при изменении состояния объекта. Когда все поля объекта Person заполнены, вызывается метод send() у наблюдателя Observer.

Надеюсь, это поможет вам реализовать необходимую функциональность.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир