JavaBeans

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

JavaBeans — класи написані мовою Java, що відповідають набору правил. Вони використовуються для об'єднання кількох об'єктів в один (bean) для зручної передачі даних.

Специфікація Sun Microsystems визначає JavaBeans, як «універсальні програмні компоненти, якими можна керувати за допомогою графічного інтерфейсу» («reusable software components that can be manipulated visually in a builder tool»).

JavaBeans забезпечують основу для багаторазово використовуваних і модульних компонентів ПЗ. Компоненти JavaBeans можуть приймати різні форми, але найбільш широко вони використовуються в елементах графічного інтерфейсу користувача. Одна з цілей створення JavaBeans — взаємодія із схожими компонентними структурами. Наприклад, Windows-програма, за наявності відповідного мосту або об'єкта-обгортки, може використовувати компонент JavaBeans так, ніби він є компонентом COM або ActiveX.

Правила опису JavaBean[ред. | ред. код]

Щоб клас міг працювати, як bean, він повинен відповідати певним визначеним угодам про імена методів, конструктор і поведінку. Ці угоди дають можливість створення інструментів, які можуть використовувати, заміняти і з'єднувати JavaBeans.

Правила опису :

  • Клас повинен мати публічний конструктор без параметрів. Такий конструктор дозволяє інструментам створювати об'єкт без додаткових складностей з параметрами.
  • Властивості класу повинні бути доступні через методи get, set, is, які відповідають стандартним згодам про імена. Це дозволить інструментам автоматично визначати і оновлювати вміст bean'ів.
  • Клас повинен бути серіалізованим. Це дає можливість надійно зберігати та відновлювати стан bean незалежним від платформи і віртуальної машини способом.
  • Він не повинен містити ніяких методів обробки подій.

Приклади[ред. | ред. код]

// PersonBean.java

public class PersonBean implements java.io.Serializable {
    private String name;
    private boolean deceased;

    // Default constructor (takes no arguments).
    public PersonBean() {}

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    // Different semantics for a boolean field (is vs. get)
    public boolean isDeceased() {
        return deceased;
    }
    public void setDeceased(boolean deceased) {
        this.deceased = deceased;
    }
}
// TestPersonBean.java

public class TestPersonBean {
    public static void main(String[] args) {

        PersonBean person = new PersonBean();
        person.setName("Bob");
        person.setDeceased(true);

        // Output: "Bob [deceased]"
        System.out.print(person.getName());
        System.out.println(person.isDeceased() ? " [deceased]" : "");
    }
}