Главная Учебники - Разные Лекции (разные) - часть 32
|
Java:
архитектура
и интерфейсы
Многим наверняка
уже известно,
что язык Java был
разработан
фирмой Sun, как
платформенно-независимый,
переносимый,
объектно-ориентированный
язык для Internet и
Intranet. Я не вижу особого
смысла перечислять
преимущества
языка, его отличия
от C++ - это уже
описано в десятках
книг и сотнях
публикаций,
как за рубежом,
так и в нашей
стране. Здесь
мы остановимся
на том, что
представляет
собой платформа
Java сегодня, из
каких компонентов
она состоит
и какие средства,
доступны для
разработчиков.
Таким образом,
по завершении
данного цикла
вы должны будете
получить достаточно
четкое представление
о том, что предлагает
фирма Sun, какими
средствами
разработки
можно пользоваться,
какие существуют
компоненты
и средства для
их создания
и как с помощью
Java можно создавать
корпоративные
решения.
Технология
Java
Технология
Java обеспечивает
разработчиков
основой для
создания решений,
при разработке
которых не
нужно задумываться
об операционной
системе и аппаратной
платформе, на
которых эти
решения будут
функционировать.
Часто используемое
выражение
"Написано
однажды – работает
везде" лучшим
образом характеризует
основное назначение
этой технологии.
Независимость
от платформы
достигается
за счет того,
что уникальные
характеристики
каждой из
поддерживаемых
Java 2 платформ,
реализованы
в виде оболочки,
называемой
Java Runtime Environment (JRE). Во время
создания приложения
разработчик
пишет код на
языке Java так, как
если бы в мире
была бы всего
одна программно/аппаратная
платформа.
Компилятор
языка Java преобразует
код в последовательность
байт-кодов,
которая будет
выполняться
на одной из
платформ в
рамках JRE.
Java Runtime Environment содержит
специальные
средства проверки
кода, обеспечивающие
надежность
и защищенность
программ, загрузчик
классов, который
динамически
загружает
классы в процессе
выполнения
и виртуальную
машину Java (Java VM), которая
выполняет
последовательность
байт-кодов,
взаимодействую
с конкретной
операционной
системой. Такой
подходт освобождает
разработчика
от необходимости
обращать внимания
на специфику
какой-то конкретной
операционной
системы и позволяет
внедрять
Java-приложения
на более чем
одной платформе.
Компоненты
JavaRuntime
Environment показаны
на следующей
диаграмме.
То, что язык
Java за короткое
время стал
одним из самых
популярных
коммерческих
объектно-ориентированных
языков программирования,
помогает
распространению
технологии
Java и подтверждается
тем, что в настоящее
время этот язык
использует
около 1 млн.
разработчиков
(80% из них создает
кросс-платформенные
приложения),
продукты для
Java выпускают
сотни фирм, а
число копий
JDK, загруженных
с сайта фирмы
Sun, превысило
2.5 млн.
Платформа
Java 2
Платформа
Java 2 (Java Development Kit 1.2), объявленная
фирмой Sun в декабре
1998 года, представляет
собой физическую
реализацию
технологии
Java. Собственно
говоря, она
заключена в
небольшом по
объему файле
и состоит из
следующих
основных компонентов:
Средства
разработки
на Java – редактор,
компилятор,
отладчик и
средство для
документации
Java API
Богатый набор
Java-библиотек
и базовых классов
(foundation classes), которые
используются
для создания
графических
интерфейсов,
доступа к базам
данных, реализации
сетевых функций,
разработки
приложений,
работающих
с несколькими
языками и т.п.
Java 2 Runtime Environment – средство
для динамической
загрузки
Java-классов, их
проверки и
выполнения
Java-байт-кода.
Архитектура
платформы Java
2 показана на
следующей
диаграмме.
Изначально,
Sun выпустила
Java 2 Runtime Environment для следующих
платформ: Solaris,
Windows NT Server 4.0 и Windows 95/98. В ближайшие
месяцы поставщики
других платформ
выпустят
соответствующие
JRE. Таким образом,
Java 2 будет реализована
на следующих
платформах:
Java 2 в деталях
Давайте
рассмотрим
состав Java 2 более
подробно. Я
выделил три
основных компонента
- средства разработки
на Java, набор
Java-библиотек
и базовых классов
и Java 2 Runtime Environment.
Средства
разработки
на Java
В состав JDK
1.2 входит большое
число утилит,
которые можно
подразделить
на несколько
категорий:
Базовые
утилиты
RMI-утилиты
Средства
для локализации
приложений
Средства
для защиты
приложений
IDL-утилиты
Базовые
утилиты
Утилиты,
относящиеся
к этой категории,
служат основой
Java Development Kit. Они используются
для компиляции
и отладки создаваемых
Java-приложений.
К базовым утилитам
относятся:
javac
java
javadoc
appletviewer
jar
jdb
javah
javap
extcheck
RMI-утилиты
Утилиты,
относящиеся
к этой категории,
используются
для создания
приложений,
взаимодействующих
между собой
по Internet или другим
типам сетей.
К таким утилитам
относятся:
rmic
rmiregistry
rmid
serialver
Средства
для локализации
приложений
К средствам
для локализации
приложений
относится
утилита native2ascii,
выполняющая
преобразование
текста в Unicode Latin-1.
Средства
для защиты
приложений
Утилиты,
относящиеся
к этой категории,
используются
для задания
уровней защиты
и создания
приложений,
который работают
на удаленных
узлах. К таким
утилитам относятся:
keytool
jarsigner
policytool
IDL-утилиты
Утилиты,
относящиеся
к этой категории,
используются
при создании
приложений,
использующих
CORBA для доступа
к базам данных.
К таким утилитам
относятся:
tnameserv
Idltojava
Набор Java-библиотек
и базовых классов
Ядром Java 2 является
библиотека
классов Java Foundation
Classes (JFC) версии 1.1,
предназначенная
для создания
графических
интерфейсов
Java-приложений.
В ее состав
входят собственно
библиотека
JFC версии 1.1 (которая
была доступна
для JDK 1.1 с февраля
прошлого года)
и следующие
интерфейсы:
Abstract
Windowing Toolkit (AWT)
Swing
Java
2D
Drag
and Drop
Accessibility
Архитектура
Java Foundation Classes показана
на следующей
диаграмме.
Abstract Windowing Toolkit позволяет
создавать
программы с
графическими
интерфейсами,
независящими
от конкретной
платформы.
Более того,
программный
интерфейс AWT
намного проще
и понятнее
программных
интерфейсов
Windows, Motif или OS/2. В JDK 1.2 было
добавлено много
новых классов
и интерфейсов,
включая поддержку
функций рисования,
вывода на принтер,
обработки
изображений
и поддержки
Drag and Drop и Java 2D.
Многие из
этих новых
компонентов
можно найти
в галерее по
адресу:
http://java.sun.com/products/jfc/swingdoc-current/comp_gal.html.
Также, можно
посмотреть
программу
SwingSet, чтобы увидеть
компоненты
Swing в действии.
Компоненты
Swing являются 100%
Java-компонентами.
Это означает,
что они не зависят
от конкретных
реализаций
интерфейсных
элементов на
той или иной
платформе. Это
также означает,
что эти компоненты
доступны на
всех платформах,
где есть поддержка
Java 2. Компоненты
Swing реализованы
как расширение
AWT, но не используют
компонентов
AWT. На самом деле,
многие традиционные
компоненты
AWT – кнопки, списки,
диалоговые
панели, были
переделаны
в компоненты
Swing Благодаря
этому, компоненты
AWT стали более
доступными
на различных
платформах
и теперь предоставляют
дополнительные
возможности,
отсутствующие
в некоторых
графических
средах. На следующей
диаграмме
показано
взаимодействие
Swing и AWT.
Одно из наиболее
интересных
свойств библиотеки
Swing – это возможность
изменения
внешнего вида
компонентов
и интерфейсов
- Pluggable Look and Feel (PL&F). Архитектура
PL&F позволяет
настраивать
внешний вид
и поведение
как одного
компонента,
так и группы
компонентов.
Также в состав
Swing входит ряд
предопределенных
настроек - Metal L&F,
Motif L&F, Windows L&F. Существуют
настройки по
умолчанию для
Macintosh и других
платформ.
Как я отметил
выше, компоненты
Swing играют важную
роль при создании
графических
интерфейсов
программ. В
следующей
таблице приведены
краткие описания
этих компонентов.
Компонент
Описание
Box
Контейнер
общего назначения
для организации
вложенных
компонентов
используя
модель BoxLayout.
Japplet
Подкласс
класса Applet
содержащий
JRootPane для
того, чтобы
добавить к
приложению
различные
интерфейсные
элементы типа
меню
Jbutton
JcheckBox
JcheckBoxMenuItem
JcolorChooser
Компонент
для выбора
цвета в одной
из цветовых
схем. Используется
совместно с
javax.swing.colorchooser
JcomboBox
Jcomponent
JdesktopPane
Контейнер
для компонентов
JInternalFrame
имитирующий
работу desktop в одном
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||