В этой статье описывается режим слушателя дизайна Java. Поделитесь этим для вашей ссылки, следующим образом:
Режим слушателя имеет три элемента - источник события, объект события и слушатель.
Источник события: Как следует из названия, источник события, такой как нажатая кнопка, принадлежит к слушающему объекту;
Объект события: это часто путается с источником события. Он часто используется для упаковки источника события. Помните, что это событие, например, нажатие на события. Разница между источником события отличается от источника события. Там нет способа почувствовать это;
Слушатель: Это ядро режима слушателя, который определяет действия после происхождения события. Обычно объект события вводится как параметр как функция, определенная в слушателе.
Вот простой каштан:
История состоит в том, что Сяо Мин - негигиеничный ребенок. Его мать очень беспокоится о его здоровье и предусматривает, что ее руки должны быть вымыты перед едой.
Определите непослушного ребенка. Непослушные дети - это объекты, которые нужно контролировать, источник событий, и все события отправляются источником событий, которые, кажется, являются бессмысленными.
Public Class Child {private String name; Private RemindListener RemindListener; public Child (String name) {this.name = name; } public void eat () {if (null! = RemindListener) {remindListener.Remind (new RemindSwashingHandSevent (this)); } System.out.println ("Ребенок есть ..."); } public void AddListener (RemindListener Slister) {remindListener = слушатель; }}Далее следует взглянуть на объект события, который, как упоминалось выше, завершает источник события. Здесь мы определяем событие для мытья рук предварительной штукой.
открытый класс воспоминания о промывании {частный ребенок ребенок; Public EmplashingHandseAndvent (Child Child) {this.child = ребенок; }} Объект события определяет свойства и статус события.
Сразу после того, как произошло событие, действия слушателя напоминают о мытьях.
Public Class RemindListener {public void напомнить (воспоминания об стиле memindsevent umindshinghandsevent) {System.out.println («Слушайте маму, мыть руки перед едой ...»); }}Обратите внимание, что слушатель в основном инкапсулирует действия, вот и все.
Приведенный выше код только для того, чтобы проиллюстрировать принцип режима слушателя, а код прост и не очень элегантен.
Следующая наследивает или реализует стандартную библиотеку Java и случайно пишет пару кода. Прошло поздно ночью, и я объясню это, если у меня будет время.
открытый класс Kid {private String name; частный список <слушатель> литенеры; public Kid (String name) {this.name = name; this.liteners = lists.newarraylist (); } public void eat () {for (слушатель слушателя: liteners) {if (экземпляр прослушивателя WashionHandsListener) {WarhingHandsListener WashingHandslistener = (WashionHandsListener) Слушатель; washandhandslistener.firefatereventinvoked (new Washandshandent (это, «мыть руки»)); }} System.out.println ("eat ..."); } public void AddListener (слушатель слушатель) {liteners.add (слушатель); }} Общедоступное событие Class Evends EventObject { /*** Создает событие прототипа. * * @param Source объект, на котором изначально произошло событие. * @Throws allogalArgumentException, если источник нулевой. */ public event (источник объекта) {super (source); }} открытый класс WashingHandsevent Event Event {private String EventName; /*** Создает прототип. * * @param Source объект, на котором изначально произошло событие. * @Throws allogalArgumentException, если источник нулевой. */ public warhayhandsevent (источник объекта, string eventname) {super (source); this.eventname = eventName; } public String getEventName () {return EventName; } public void setEventName (string eventName) {this.eventName = eventName; }} Слушатель публичного интерфейса расширяет java.util.eventlistener {public void fireeftereventinvoked (событие события);} открытый класс WashionHandsListener реализует слушателя {@Override public void fireefterEventInvoked (событие) {Washandsevent Warhandsevent = (WashionHandsevent); System.out.println («Приготовление перед едой» + WashingHandsevent.getEventName ()); }} открытый тест класса {public static void main (string [] args) {Kid xiaoming = new Kid ("Xiaoming"); xiaoming.addlistener (new WashandhandsListener ()); xiaoming.eat (); }}Результат вывода:
Для получения дополнительного контента, связанного с Java, читатели, заинтересованные в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Operation Dom Узел», «Краткое изложение Java File и Directory Commine» и «Советы по эксплуатации Java Cache»
Я надеюсь, что эта статья будет полезна для всех Java Programming.