Sobes.tech
Junior — Middle
78

Оё мумкин аст фаҳмондани консепсия ва истифодаи намунаи мушоҳидагари дар барномасозӣ?

Ҷавоб аз AI

sobes.tech AI

Паттерн "Наблюдатель" (Observer) используется для организации связи между объектами, где один объект (издатель) уведомляет другие объекты (наблюдатели) об изменениях своего состояния.

Применение:

  • Позволяет реализовать слабую связанность между компонентами.
  • Часто используется в GUI для обновления интерфейса при изменении данных.
  • В системах событий и подписок.

Пример на Python:

class Subject:
    def __init__(self):
        self._observers = []
        self._state = None

    def attach(self, observer):
        self._observers.append(observer)

    def detach(self, observer):
        self._observers.remove(observer)

    def notify(self):
        for observer in self._observers:
            observer.update(self._state)

    def set_state(self, state):
        self._state = state
        self.notify()

class Observer:
    def update(self, state):
        print(f"Observer received new state: {state}")

subject = Subject()
observer1 = Observer()
observer2 = Observer()

subject.attach(observer1)
subject.attach(observer2)

subject.set_state('Новое состояние')

В этом примере при изменении состояния объекта Subject все подписанные наблюдатели получают уведомление и реагируют на него.