Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Что такое компонент (Bean)?

Читайте также:
  1. I.1. Зачем пишут диплом и что он такое
  2. II. Попутные полезные компоненты
  3. IX. Профилактика гепатита С при переливании донорской крови и ее компонентов, пересадке органов и тканей, искусственном оплодотворении
  4. А что такое масоны?
  5. А) Что такое наука
  6. А. Компоненты ткани: коллагеновые волокна и тендиноциты
  7. Активные компоненты эфирных масел, синергизм.
  8. Анализ исходных данных и подбор компонентов и деталей
  9. Атакуемые сетевые компоненты
  10. Б. Семенные канальцы: компоненты

После того, как осядет пыль, компонент представляет собой блок кода, обычно, заключенного в класс. Ключевая способность построителя приложения состоит в обнаружении свойств и событий компонента. Для создания VB компонент программист должен написать довольно сложный кусок кода, следуя определенным соглашениям для выделения свойств и событий. Delphi был визуальным инструментом программирования второго поколения, и дизайн языка был построен исходя из простоты построения и использования визуальных компонент. Однако Java стал использовать создание визуальных компонент наиболее продвинутым способом с помощью JavaBeans, потому что компонент (Bean) - это просто класс. Вам не нужно писать дополнительный код или использовать специальное расширение языка для создания какого-нибудь компонента. Фактически, вам необходимо сделать только одну вещь: слегка модифицировать способ, которым вы создаете названия методов. То есть использовать имя метода, которое скажет построителю приложения, является ли он свойством, событием или просто обычным методом.

В документации по Java это соглашение об именах ошибочно называется “шаблон разработки (design pattern)”. Это не удачно, так как шаблоны разработки (смотрите Thinking in Patterns with Java, доступной на www.BruceEckel.com) и так оспариваются и без этой путаницы. Это не шаблоны разработки, это просто соглашение об именах и оно достаточно простое:

  1. Для свойства с именем xxx вы обычно создаете два метода: getXxx() и setXxx(). Обратите внимание, что первая буква после “get” или “set” автоматически преобразуется к нижнему регистру для получения имени свойства. Тип, производимый методом “get” должен быть тем же самым, что и тип аргумента в методе “set”. Имя свойcтва и тип для “get” и “set” не связаны.
  2. Для свойства типа boolean вы можете использовать подход для “get” и “set”, описанный выше, но вы также можете использовать “is” вместо “get”.
  3. Обычные методы компонента (Bean) не удовлетворяют соглашению об именах, но они публичные (public).
  4. Для событий вы используете подход “слушателей” из Swing. Он точно такой же, как вы видели: addFooBarListener(FooBarListener) и removeFooBarListener(FooBarListener) для обработки FooBarEvent. Чаше всего для ваших нужд подойдут встроенные события и слушатели, но вы можете также создать свои собственные события и интерфейсы слушателей.

Пункт 1 отвечает на вопрос о том, что вы могли заметить, когда просматривали код в старом стиле и код в новом стиле: число имен методов стало меньше, и иметь явно осмысленный характер. Теперь вы видите, что большинство из этих изменений были сделаны для адаптации к соглашению об именах в отношении “get” и “set”, чтобы встроить определенный компонент в Bean.

Мы может использовать это руководство для создания простого компонента (Bean):

//: frogbean:Frog.java// Тривиальный JavaBean.package frogbean;import java.awt.*;import java.awt.event.*; class Spots {} public class Frog { private int jumps; private Color color; private Spots spots; private boolean jmpr; public int getJumps() { return jumps; } public void setJumps(int newJumps) { jumps = newJumps; } public Color getColor() { return color; } public void setColor(Color newColor) { color = newColor; } public Spots getSpots() { return spots; } public void setSpots(Spots newSpots) { spots = newSpots; } public boolean isJumper() { return jmpr; } public void setJumper(boolean j) { jmpr = j; } public void addActionListener(ActionListener l) { //... } public void removeActionListener(ActionListener l) { //... } public void addKeyListener(KeyListener l) { //... } public void removeKeyListener(KeyListener l) { //... } // "Обычный" публичный метод: public void croak() { System.out.println("Ribbet!"); }} ///:~

Прежде всего, вы можете видеть, что это просто класс. Обычно все ваши поля будут private, и доступны только через методы. Следуя соглашению об именах, получим свойства jumps, color, spots и jumper (обратите внимание на регистр первой буквы имени свойства). Хотя имя внутреннего идентификатора такое же, как и имя свойства в первых трех случаях, в jumper вы можете видеть, что имя свойства не ограничивает вас в использовании определенного идентификатора для внутренней переменной (или, на самом деле, даже иметь любые внутренние переменные для этого свойства).

События, обрабатываемые этим компонентом, это ActionEvent и KeyEvent, основываются на наименовании методов “add” и “remove” для ассоциированного слушателя. И, наконец, вы можете видеть, что обычный метод croak() все еще является частью компонента, потому что это public метод, а не потому, что он удовлетворяет какой-то схеме названий.




Дата добавления: 2015-09-11; просмотров: 24 | Поможем написать вашу работу | Нарушение авторских прав

Радио кнопки | Окна сообщений | Всплывающие меню | Окна диалогов | Файловые диалоги | Деревья | Таблицы | Буфер обмена | Динамическое построение событий | Отделение бизнес логики от логики пользовательского интерфейса |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав