Автоупаковка и автораспаковка
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

n Автоупаковка – процесс автоматической инкапсуляции данных простого типа в экземпляр соответствующего ему класса-обертки в случаях, когда требуется значение ссылочного типа

n Автораспаковка – процесс автоматического извлечения примитивного значения из объекта-упаковки в случаях, когда требуется значение примитивного типа

List list = new LinkedList();

list.add(1);

int b = (Integer)list.get(0) + 10;

 

Особенности автоупаковки

n Происходит при присваивании, вычислении выражений и при передаче параметров

n Объекты создаются без использования ключевого слова new

Integer i = 15;

n Объекты создаются!

n Автоупаковка требует существенных
ресурсов

n Злоупотреблять автоупаковкой
вообще не стоит!

 

 

Вопрос 66 Компонентный подход в программировании. 2-6. Лекция Компонентная модель в ооп. Технология JavaBeans.

 



Объектный подход   vs   Компонентный подход

n Объектный подход
Программа пишется как объектная модель реальной или воображаемой системы, объекты и их отношения легко понятны

n Компонентный подход
Программа собирается из заранее созданных компонентов, которые могут быть достаточно сложны для понимания

 



Понятие компонента

n Компонент – это элемент системы, представляющий определенную службу или сущность, допускающий взаимодействие с другими компонентами

n Особенности компонентов:

l Многоразовое использование

l Независимость от контекста

l Кооперация с другими компонентами

l Инкапсуляция

l Самостоятельность как единицы программы

n Компонент – объект, написанный в соответствии со спецификацией

 

Требования к разработке компонентов

n Полная документация

n Более строгое тестирование

n Надежная проверка достоверности входных данных

n Возврат полезных сообщений об ошибках

n Разработка с учетом непредусмотренного использования

 

Контейнеры и компоненты

n Контейнер предоставляет контекст, в котором компоненты могут существовать и действовать совместно

n Контейнер тоже может  быть компонентом

n Это полностью рекурсивно!

 

Существующие компонентные модели

n JavaBeans

n Enterprise JavaBeans

n .Net Framework Components

n ActiveX

n COM

n DCOM

n CORBA

n VLC & CLX

n …

 

 

Вопрос 67 Компоненты JavaBeans. Требования к компоненту. 7-12 Лекция Компонентная модель в ооп. Технология JavaBeans.

 

JavaBeans

n Компонентная модель для языка Java

n Компоненты называются Beans (бины)

n Компонент описывается как класс, удовлетворяющий определенным правилам

n Следует различать компонент как класс компонента и компоненты как его экземпляры, использующиеся в программе

n Для работы с компонентами используются специальные программные средства, позволяющие «визуально» настраивать компонент и его взаимодействие с другими компонентами (RAD-tools)

 

Интроспекция

n Средства работы с бинами подвергают бины интроспекции

n Интроспекция – механизм, основанный на рефлексии, позволяющий определить  характеристики компонента, основываясь на информации, заключенной в именах  элементов класса компонента  и вспомогательных классах

 

Компоненты JavaBeans

n Компонент имеет свойства, которые представляют собой характеристики компонента и могут быть изменены в процессе сборки

n Компонент использует события для взаимодействия с другими компонентами

n Компоненты обладают свойством персистентности: могут сохранять свое состояние в долговременное хранилище и затем восстанавливать его

n Методы компонентов являются обычными методами Java и могут использоваться другими компонентами

 

Достоинства JavaBeans

n Компактность

n Переносимость

n Поддержка механизмов интроспекции

n Способность к работе в графической среде быстрой разработки приложений (RAD)

 

Требования к компоненту JavaBeans

n Способность к инстанцированию нового экземпляра (бин – не интерфейс, не абстрактный класс)

n Наличие конструктора по умолчанию (конструктора без параметров)

n Возможность сериализации

n Следование соглашениям об именах и способах проектирования

n Использование модели делегирования обработки событий

 

Удивительное рядом

n Нет общего супер-класса для бинов

n API пакета java . beans предоставляет только классы поддержки функционирования компонентов JavaBeans

n Нет никакого специализированного языка описания интерфейсов

 

Вопрос 68 Свойства компонентов JavaBeans. Классификация и особенности (без примеров) 13-26. Лекция Компонентная модель в ооп. Технология JavaBeans.

 

Свойства

n Виды свойств по способу доступа

l Допускающие запись

l Допускающие чтение

n Виды свойств по сложности

l Простые

l Индексированные

l Связанные

l Контролируемые

 

Простые свойства

n Доступны пользователю как пара методов доступа (setter/getter)

n Любой из этих методов может отсутствовать, определяя таким образом доступность свойства для чтения/записи (read-only/write-only)

n Соглашения именования:

l Общий вид

n public ТипСвойства get ИмяСвойства ()

n public void set ИмяСвойства (ТипСвойства значение)

l Логические свойства

n public boolean is ИмяСвойства ()

n public void set ИмяСвойства ( boolean значение)

 

Индексированные свойства

n Определяют доступ к массиву свойств с возможностью доступа по номеру

n Соглашения именования:

l public ТипСвойства [] get ИмяСвойства ()

l public void set ИмяСвойства
(ТипСвойства[] значения)

l public ТипСвойства get ИмяСвойства
( int индекс)

l public void set ИмяСвойства
( int индекс, ТипСвойства значение)

 




Связанные свойства

n Поддерживают механизм оповещения об изменениях значений свойств

n Обработчики реализуют интерфейс PropertyChangeListener и принимают объекты PropertyChangeEvent, содержащие имя свойства и его старое и новое значения

n Используется вспомогательный класс PropertyChangeSupport

 

Контролируемые свойства

n Похожи на связанные свойства, но перед присвоением нового значения оно должно быть проверено обработчиками

n Любой обработчик в праве запретить изменение, в этом случае значение свойства останется прежним

n Обработчики реализуют интерфейс VetoableChangeListener и принимают объекты PropertyChangeEvent, содержащие имя свойства и его старое и новое значения

n Используется вспомогательный класс VetoableChangeSupport

 

Вопрос 69 Графические компоненты (без примеров реализации). Упаковка в jar. Персистентость. 27-30, 40-42. Лекция Компонентная модель в ооп. Технология JavaBeans.

 

Графические компоненты

n Если компоненты содержит средства визуализации, то его суперкласом должен быть:

l java . awt . Component
если создается компонент на базе AWT

l javax . swing . JComponent
если создается компонент на базе Swing

n Хотя и компоненты AWT, и компоненты Swing являются компонентами JavaBeans, не рекомендуется смешивать их в одном контейнере

 



Персистентнось

n Способность объекта существовать во времени, переживая породивший его процесс

n Для JavaBeans реализуется за счет сериализации

n Все классы компонентов должны быть подготовлены к сериализации

n Существуют механизмы сохранения состояния бинов в xml-формат

 

Упаковка в Jar

n Класс компонента, вспомогательные классы, файлы помещаются в jar-архив

n В файле манифеста при этом указывается дополнительная информация:

Name: beans/MyBean.class

Java-Bean: True

 

Вопрос 70 Принципы обработки событий компонентов. 31-39 Лекция Компонентная модель в ооп. Технология JavaBeans.

 

Дата: 2019-07-30, просмотров: 203.