Наблюдатель модель

Как Singleton тенденция, которая была освещена в первой половине этого отзыва, шаблон наблюдатель популярный шаблон проектирования, используемых в программах Java. Шаблон является поведенческой модели дизайна. Он определяет путь к классам для слабо связанных и для одного класса (или много), чтобы получать уведомления при обновлении другого. В основном это означает, что когда-то происходит в одном месте, вы сообщите, кто наблюдает, и что заинтересованы в этом одном месте.

Есть два способа смотреть на модель наблюдателя. Первый способ связан с наблюдателем и наблюдаемой классы найдены в пакете java.util. Второй способ следует модели JavaBeans компонент регистрации событий слушателей с компонентами.

До создания модели JavaBeans случае, наблюдателем и наблюдаемой описаны классы реализации наблюдаемых модели. Иными словами, классы были примерно с версии 1.0 платформы Java. Существует ничего технически ошибочна с классами, и они по-прежнему присутствуют в библиотеках. Классы еще могут быть использованы для реализации наблюдаемых модели, а вторая модель, модель JavaBeans компонента, как правило, используется. Одним из важных проблем в использовании классы для реализации наблюдаемых модели является то, что нужно продлить наблюдаемым. Это заставляет структуры иерархия классов, которые не могут быть видны в одно-наследства Мир платформы Java.

Модель JavaBeans компонент регистрации слушателей событий включает в себя ряд добавлять и удалять методами, где слушателю тип вкладывается в название метода. Например, чтобы наблюдать за выбором кнопки, вы регистрируете ActionListener с компонентами:


   ActionListener listener = new ActionListener() {

      public void actionPerformed(ActionEvent actionEvent) {

          ...

      }

   }

   JButton button = new JButton("Pick Me");

   button.addActionListener(listener);

Это действительно все, что с моделью наблюдатель в системе классов. Вы реализуете интерфейса слушателя, приложите ее к вопросу о наблюдении, и ждать. "Тема", что наблюдается. Он отвечает за память, который ведет наблюдение. В случае модели компонентов JavaBeans, интерфейс для подключения и отключения наблюдателя объектов Добавить / удалить слушателю имена шаблону. Когда государство изменений тем, он уведомляет наблюдателя объектов.

Одна из основных целей шаблон для того, чтобы свободно связи субъекта и наблюдателя. При выборе JButton, вместо вызова конкретного метода фиктивных подкласса им ButtonNotification, уведомление из отведенной в интерфейсе, что каждый может реализовать. JButton не волнует то, что класс придает наблюдателя (слушателя) есть. В самом деле, кнопки не заботит, если изменены реализации класса. Все, что заботится о том, что наблюдатель реализующий слушателю.

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

Еще одна область платформы Java, что модели модель наблюдатель Java Message Service (JMS), с ее гарантированной доставки, не местного распределения, и настойчивость, чтобы назвать некоторые из ее преимуществ. JMS публикации-подписки сообщениями модель позволяет любому количеству абонентов прислушиваться к тем, представляющих интерес. При изготовлении сообщение опубликовано теме, уведомляются все связанные абонентов.

Есть много других мест на платформе Java, что модель модель наблюдателя — модель часто используется по всей платформе Java.

С 1995 года публикация шаблонов дизайна книги банда четырех, остальные книги были опубликованы, которые предлагают различные точки зрения по той же модели и ввести дополнительные шаблоны. Два из наиболее популярных названий являются:

Другие книги, такие как шаблоны предприятия архитектуры приложения доступны для тех, кто заинтересован в более целенаправленный охват шаблон дизайна — в данном случае, для корпоративных приложений.

За дополнительной информацией о шаблонах проектирования в общем, увидеть ее вступления Википедии.

Этот вопрос Tech Tips посвящен памяти Джона Vlissides, одна из первоначальных Банда четырех авторов. Он скончался ноября 2005 года.

Copyright (C) 2004-2005 Sun Microsystems, Inc
Все права защищены.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>