Принципы компонентно-ориентированного программирования. Инструментальная поддержка компонентной модели JavaBeans. Анализ и выбор технологий и библиотеки графического интерфейса. Генерация классов, реализующих интерфейсы слушателей, интроспекция бинов.
В ходе развития и эволюции методологии разработки программного обеспечения было предложено множество парадигм программирования, которые определяли стиль написания программ, определяли из каких элементов они должны состоять, а также какие подходы следует применять при написании кода. Возникновение компонентно - ориентированного программирования как набора ограничений для ООП в некотором роде сходно с появлением структурного программирования, которое ограничивало использование неупорядоченных и бесконтрольных переходов в потоке управления программы с помощью оператора GOTO. Компонентно - ориентированный подход предлагает быстро создавать гибкие системы, используя набор написанных ранее компонентов, комбинируя эти компоненты вместе, как строительные блоки. Однако для работы с компонентной моделью требуется инструмент, который бы ее поддерживал и позволял бы манипулировать компонентами, и такой инструмент был представлен вместе с моделью Java Beans - Bean Development Kit. Он позволяет задавать свойства компонентов Java Beans с помощью графического интерфейса пользователя, создавать композиции компонентов, привязывая вызов метода компонента по срабатыванию события какого-либо компонента, а также сериализовать и десериализовать компоненты.Как было упомянуто во введении, компонентно - ориентированное программирование явилось развитием идей, предложенных объектно-ориентированным программированием и было призвано исправить недостатки ООП. В компонентно - ориентированном программировании акцент ставится на компоненте. Существует множество определений понятия компонент, однако самыми распространенными являются следующие два определения: «Компонент - это программный элемент, удовлетворяющий следующим условиям: 1.Практически во всех популярных средах разработки присутствует возможность проектировать интерфейсы, перетаскивая компоненты в рабочую область и изменяя их свойства с помощью графического интерфейса. Например, в случае разработки на Java, основные среды разработки, такие как Intellij Idea, NETBEANS и Eclipse позволяют создавать пользовательские интерфейсы, используя компоненты библиотеки для создания графического интерфейса Swing.Компания - разработчик Java и компонентной модели Java Beans - Sun Microsystems выпустила инструмент с требуемой функциональностью в 1997 году вместе со спецификацией компонентной модели - BEANBOX. Загружать компоненты из JAR файлов. Задавать вызов метода компонента по срабатыванию события какого-либо компонента. Инструмент представлен в виде трех независимых окон, тогда как все современные среды разработки организованы в виде docking view, который позволяет управлять панелями и как независимыми окнами, и как частью общего окна приложения. В случае, если компонент Java Bean может порождать события, он предоставляет возможность другим компонентам подписаться на события данного типа, для этого подписчик должен предоставить реализацию интерфейса слушателя, требуемого источником событий (обычно унаследованного от интерфейса EVENTLISTENER).Swing - библиотека для создания графического интерфейса, пришедшая на смену AWT, начиная с версии Java 1.2. Компоненты Swing являются «легковесными», то есть отрисовываются средствами самих компонентов, в отличии от компонентов AWT, которые используют стандартные компоненты интерфейса системы. Так как компоненты Swing не используют системные элементы интерфейса, они отображаются и функционируют одинаково на всех поддерживаемых платформах. Однако Swing поддерживает динамически подключаемые «виды и поведения» («look and feel»), что позволяет адаптировать внешний вид приложения к внешнему виду родных приложений системы, на которой оно запускается [12]. За свою долгую историю вокруг Swing сложилось большое и развитое сообщество разработчиков, было разработано большое количество сторонних компонентов для любых целей и был накоплен большой багаж знаний, следовательно, в случае возникновения проблем, велика вероятность, что она уже была решена.Как было упомянуто ранее, для связывания вызова метода компонента и срабатывания события какого-либо компонента в BEANBOX применялась генерация исходного кода с последующей компиляцией этого кода с помощью вызова стандартного java компилятора и загрузки скомпилированных классов в приложение. В современных версиях JDK существует несколько инструментов, позволяющих достичь требуемой цели: Dynamic Proxy Class API и Java Compiler API. Помимо этого Java Compiler API позволяет собирать диагностическую информацию, тем самым контролируя процесс компиляции и отслеживая возможные ошибки. дход к связыванию компонентов с использованием Java Compiler API идентичен подходу, примененному в BEANBOX, так как также требует генерации исходного java кода и загрузки скомпилированных классов, однако позволяет избавиться от некроссплатформенного и подверженного ошибкам вызова java компилятора в отдельном, только что созданном процессе и необходимости перекомпиляции приложения при изменении пути к компилятору. Однако, данный подход, в отличие от д
2.2.1 Организация графического интерфейса приложения
2.2.2 Описание библиотеки графического интерфейса
2.2.3 Загрузка компонентов в приложение
2.2.4 Использование Java Dynamic Proxy Class API
3 Особенности реализации
3.1 Графический интерфейс приложения
3.1.1 BEANLISTPANEL
3.1.2 BEANMANIPULATIONPANEL
3.1.3 GUIBEANWRAPPER
3.1.4 PROPERTYSHEETPANEL
3.2 Связывание компонентов
3.2.1 BEANINVOCATIONHANDLER
3.2.2 BEANBINDINGMANAGER
3.2.3 Шаблон Одиночка в Java
Заключение
Список использованных источников
Введение
В ходе развития и эволюции методологии разработки программного обеспечения было предложено множество парадигм программирования, которые определяли стиль написания программ, определяли из каких элементов они должны состоять, а также какие подходы следует применять при написании кода. Одним из важнейших этапов этого развития стало появление компонентно - ориентированного подхода, основанного на идеях объектно-ориентированного программирования и расширяющего их. «Компонентно - ориентированное программирование (КОП) - это парадигма программирования, которая делает возможным конструирование программ из заранее созданных программных компонентов, являющихся повторно - используемыми, самостоятельными блоками компьютерного кода [6]. Оно является своего рода набором ограничений и правил, налагаемых на механизмы объектно - ориентированного программирования (ООП) для повышения надежности программных систем. Возникновение компонентно - ориентированного программирования как набора ограничений для ООП в некотором роде сходно с появлением структурного программирования, которое ограничивало использование неупорядоченных и бесконтрольных переходов в потоке управления программы с помощью оператора GOTO. В отличии от объектно - ориентированного программирования, которое оперировало понятием объекта - некоторой сущности, объединяющей в себе поля, то есть данные, и методы, который данный объект способен выполнить, КОП оперирует понятием компонента, то есть независимым модулем, который предназначается для повторного развертывания и использования. Компоненты могут быть реализованы в виде множества разных языковых конструкций (например, классов в терминах объектно - ориентированных языков). Компонентно - ориентированный подход предлагает быстро создавать гибкие системы, используя набор написанных ранее компонентов, комбинируя эти компоненты вместе, как строительные блоки. На данный момент компонентно-ориентированное программирование считается одной из самых широко-используемых парадигм программирования. Компонентно-ориентированный подход к разработке программного обеспечения был реализован в рамках многих языков программирования и разных платформ, в частности, в рамках объектно-ориентированных языков (будучи развитием принципов ООП, идеи КОП органично реализовывались в таких языках), таких, как, например, Java. В настоящее время Java является одним из самых популярных и широко используемых языков в мире. Для Java платформы было предложено множество компонентных моделей, однако самой популярной остается модель JAVABEANS, предложенная компанией Sun Microsystems, разработчиком Java, в 1997 году вместе с первой версией языка. Данная модель будет подробно рассмотрена во второй главе. Однако для работы с компонентной моделью требуется инструмент, который бы ее поддерживал и позволял бы манипулировать компонентами, и такой инструмент был представлен вместе с моделью Java Beans - Bean Development Kit. Он позволяет задавать свойства компонентов Java Beans с помощью графического интерфейса пользователя, создавать композиции компонентов, привязывая вызов метода компонента по срабатыванию события какого-либо компонента, а также сериализовать и десериализовать компоненты. Однако за более, чем пятнадцатилетнюю историю BDK не претерпевал никаких изменений и не обновлялся, хотя современные версии Java Development Kit предлагают много новых возможностей по сравнению с первой версией, таким образом, существующий инструмент является устаревшим.
«Java Development Kit (JDK) - бесплатно распространяемый компанией Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE)» [10]. Каждая новая версия JDK предоставляла новые возможности и технологии разработчикам, а также исправления ошибок и оптимизации. Одними из самых значимых нововведений в JDK за всю историю были: · Введение в версии 1.2 библиотеки графического интерфейса Swing и коллекций.
· Введение Java Dynamic Proxy Class API в версии 1.3, позволяющее динамически создавать реализации интерфейсов без необходимости генерации исходного или байт кода.
· Добавление в версии 1.5 перечислимых типов, средств обобщенного программирования и автоматического преобразования между простыми типами и соответствующими типами - обертками, например, int - Integer.
· Введение Java Compiler API в версии 1.6, позволяющее использовать компилятор java, установленный в системе.
· Введение в версии 1.7 платформы JAVAFX [15].
Таким образом, существующему инструменту требуется замена: инструмент для компонентного программирования и обучения ему, реализованный с использованием новых возможностей, предоставляемых последней на данный момент версией JDK.
Целью данной работы является создание удобного инструмента для поддержки компонентно-ориентированного программирования в рамках Java платформы и модели JAVABEANS, используя технологии, доступные в современном JDK.
В рамках данной цели были поставлены следующие задачи: 1. Проведение исследования существующих аналогов разрабатываемого инструмента и выявление их недостатков.
2. Исследование компонентной модели JAVABEANS
3. Выявление, анализ и выбор технологий, предлагаемых современным JDK, которые могут быть использованы при реализации требуемого функционала.
4. Реализация инструмента, позволяющего манипулировать компонентами JAVABEANS и создавать композиции из них, используя выбранные технологии.
В главе 1 будет подробно рассмотрен Bean Development Kit, а также другие аналоги и технологии, которые могут быть применены для разработки требуемого инструмента. В главе 2 будут подробно рассмотрены технологии, выбранные для реализации необходимой функциональности, и, наконец, в третьей главе будут рассмотрены подробности реализации программы. компонентный программирование графический интерфейс
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы