Sobes.tech
Junior — Middle
82

Программалоодо байкоочу үлгүнүн концепциясы жана колдонулушу түшүндүрүлөбү?

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 все подписанные наблюдатели получают уведомление и реагируют на него.