Философия Java


Что такое компонент (Bean)? - часть 2


  • Для событий вы используете подход “слушателей” из 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 метод, а не потому, что он удовлетворяет какой-то схеме названий.




    Начало  Назад  Вперед



    Книжный магазин