Базовая архитектура приложения Java - PullRequest
1 голос
/ 13 января 2011

Я только что перешел на Java (из AS3) и понимаю синтаксис и все основы, но я не могу найти учебники или книги по базовой архитектуре программы.

Например,

ObjectA has a property: ObjectB. 
ObjectB has a property: x
ObjectB.x changes at some point. 

Как я могу получить объект A 'catch' или 'hook in' или 'listen' для изменения в ObjectB.x?

В AS3 я бы сделал ObjectB диспетчером событий, а ObjectA прослушивал какое-то пользовательское событие.

Или во Flex Framework я бы сделал ChangeWatcher.

Как это делается на Java и где я могу найти эти архитектурные основы?

Ответы [ 4 ]

0 голосов
/ 13 января 2011

Ознакомьтесь со спецификацией JavaBeans, она включает рекомендации о том, как создавать события и прослушиватели, чтобы они соответствовали стандарту (он был стандартизирован, потому что Sun думала, что будет некоторый Delphi-подобный рынок в виджетах GUI, который так и не был реализован,но это не помешает иметь стандартный способ ведения дел). Вот учебник по написанию слушателей событий.

0 голосов
/ 13 января 2011

Возможно, вы захотите взглянуть на образец наблюдателя

0 голосов
/ 13 января 2011

В мире Java-бина шаблон наблюдателя реализован с использованием слушателя изменения свойства Этот Java-урок является хорошим примером . Не обращайте внимания на часть графического интерфейса Java bean и сосредоточьтесь на коде.

0 голосов
/ 13 января 2011

Если вам действительно нужно, вы можете создать событие и прослушать его.

В вашем методе ObjectB.setX() вы можете запустить событие, чтобы ObjectA узнала, что значение было изменено.

Вот статья, которая описывает, как это сделать: http://www.javaworld.com/javaqa/2000-08/01-qa-0804-events.html

Но я не уверен, что сделал бы это так. В моем ObjectB.setX() я бы искал родителя ObjectA и, если он существует, использовал функцию, определенную в ObjectA.

...