Открыть сервис

Observer (значения)

Observer (с англ. — «наблюдатель») — многозначный термин, использующийся в программировании (шаблон проектирования), в военном деле (корректировщик артиллерийского огня), в авиации (бортовой наблюдатель), а также в названиях ряда печатных изданий и программных продуктов.

Шаблон проектирования «Наблюдатель»

В объектно-ориентированном программировании Observer — это поведенческий шаблон проектирования, который создаёт механизм подписки, позволяющий одним объектам (наблюдателям) следить за изменениями состояния других объектов (субъектов) и автоматически реагировать на них. Шаблон также известен как Publisher-Subscriber (издатель-подписчик) или Listener (слушатель).

Структура и принцип работы

Основные участники шаблона:

  • Subject (субъект, издатель) — объект, который хранит состояние и управляет списком подписчиков. Предоставляет методы для добавления, удаления и оповещения наблюдателей.
  • Observer (наблюдатель, подписчик) — интерфейс с методом update(), который вызывается субъектом при изменении состояния.
  • ConcreteSubject (конкретный субъект) — реализация субъекта, хранящая актуальное состояние.
  • ConcreteObserver (конкретный наблюдатель) — реализация наблюдателя, которая выполняет конкретные действия при получении уведомления.

Принцип работы: наблюдатели регистрируются у субъекта через метод подписки. Когда состояние субъекта изменяется, он вызывает метод уведомления, который перебирает всех подписанных наблюдателей и вызывает их метод обновления. Таким образом, объекты не связаны жёсткими ссылками друг на друга, что снижает связанность системы.

Преимущества и недостатки

Преимущества шаблона:

  • реализует принцип открытости/закрытости (можно добавлять новых наблюдателей без изменения кода субъекта);
  • устанавливает связь между объектами во время выполнения программы;
  • позволяет гибко управлять подписками.

Недостатки:

  • порядок уведомлений не определён;
  • возможна утечка памяти, если наблюдатель не отписывается от субъекта;
  • при большом числе наблюдателей возможны проблемы с производительностью.

Применение

Шаблон Observer широко применяется в графических интерфейсах (обработка событий мыши и клавиатуры), в архитектуре Model-View-Controller (MVC), где представления выступают наблюдателями за моделью, в системах обмена сообщениями, в игровых движках и в реактивном программировании. В стандартной библиотеке Java шаблон реализован через интерфейсы java.util.Observer и класс java.util.Observable (устарели в Java 9), в .NET — через события и делегаты.

Военное дело

В артиллерии observer (наблюдатель, передовой авиационный наводчик) — военнослужащий или подразделение, осуществляющее разведку целей, корректировку огня и оценку результатов стрельбы. Наблюдатели располагаются на наблюдательных пунктах, обеспечивающих прямой обзор поля боя, и передают данные о координатах целей на огневые позиции.

В авиации наблюдателем называли члена экипажа самолёта-разведчика, отвечавшего за визуальное обнаружение целей, ведение наблюдения и фотосъёмку. В годы Первой мировой войны наблюдатели выполняли функции корректировщиков артиллерийского огня, а позже — воздушных разведчиков.

Печатные издания

Observer — распространённое название газет и журналов. Наиболее известные издания:

  • The Observer — британская воскресная газета, основанная в 1791 году. Считается старейшей воскресной газетой в мире. С 1993 года принадлежит Guardian Media Group и выходит вместе с газетой The Guardian.
  • The New York Observer — американская еженедельная газета, основанная в 1987 году, освещающая новости культуры, политики и недвижимости Нью-Йорка.
  • The Observer (Индия) — ежедневная англоязычная газета, издаваемая в штате Одиша.
  • The Jakarta Observer — индонезийская англоязычная газета, выходившая с 1955 по 1960-е годы.

Программное обеспечение

  • Observer — программа для мониторинга состояния серверов и сетевых устройств (HP Network Node Manager i, ранее — OpenView).
  • Observer — модуль расширения для браузера Firefox, предназначенный для анализа веб-страниц и отслеживания изменений в DOM-структуре.
  • Observer — инструмент для сбора аналитических данных в системах управления базами данных.

Другие значения

  • В теории систем и кибернетике наблюдатель — субъект или устройство, фиксирующее состояние системы.
  • В философии и физике (квантовая механика) — наблюдатель, влияющий на результат измерения.
  • В международных организациях (ООН, ОБСЕ) — наблюдатель — представитель государства или организации, присутствующий на заседаниях без права голоса.
  • В спорте — технический делегат или судья-наблюдатель, контролирующий соблюдение правил.
  • Observer — название нескольких моделей автомобилей, в том числе британского автобуса Leyland Observer (1930-е годы).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →