Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Как проводится инспекция свойств и событий

Поскольку Веаn-компонент имеет программируемые свойства, которые в нашем случае он наследует из класса canvas программы контейнера, работающей с Bean, всегда есть возможность узнать обо всех возможных свойствах и при желании переустановить их через специальное диалоговое окно, так называемый редактор свойств. Например, в программе-контейнере sun.beanbox, доступной в исходном коде по команде Edit - Report, можно узнать обо всех свойствах и обрабатываемых событиях рассматриваемого Bean. Отчет выдается на консоль в следующей форме:

 

Ясно, что эту информацию можно использовать в программе-контейнере, что и делается. По сути Bean афиширует и документирует все свои свойства и методы. Beans связываются с другими Bean, посылая и получая уведомления о происходящих событиях. Чтобы увидеть, какие события simpieBean может посылать, воспользуемся пунктом меню Event программы ВеапВох. Отобразится список событий, сгруппированных по интерфейсам. Под каждой группой интерфейса будет показан список методов для данного события. Все они в нашем случае унаследованы от класса canvas (холст).

 

Извлечение информации из Bean обо всем, что с ним связано, называется интроспекцией — и это является одной из самых мощных особенностей объектно-ориентированного программирования на Java. Интерфейс интроспекции либо использует соглашение о именах, описанное в документации по Java (design patterns), либо берет информацию из специального класса Beaninfo, который может быть связан с каждым разрабатываемым JavaBean и должен быть обеспечен его разработчиком.

 

Существует специальный класс introspector.
По заданному компоненту он конструирует объект класса Beaninfo. Действует Introspector следующим образом. Сначала он пытается найти класс, имя которого получается из имени класса компонента путем добавления текстовой приставки "Beaninfo". Если такой класс находится, соответствующая информация используется при конструировании результирующего объекта Beaninfo.

В противном случае Introspector использует механизм рефлексии, т. е. соглашение об именовании (design patterns), и анализирует имена и типы параметров public-методов класса компонента и тех, которые он наследует. К сожалению, данный предмет обсуждения слишком велик и выходит за рамки настоящей книги, однако, как и все, связанное с программируемыми объектами в Java, особенности программирования Bean имеют огромное количество примеров в Интернете, хорошо описаны в фирменной документации по Java, не говоря уже о таких канонических книгах, как "Thinking in Java" ("Философия Java") легендарного Б. Эккеля (В. Eckel) и др.

     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru