Перейти до вмісту

JavaBeans

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

Не плутати з Enterprise JavaBeans.

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

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

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

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

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

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

  • Клас повинен мати public конструктор без параметрів. Такий конструктор дозволяє інструментам створити об'єкт без додаткових складностей з параметрами.
  • Властивості класу повинні бути доступні через 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 (this.name);
    }
    public void setName(String name) {
        this.name = name;
    }
    // Different semantics for a boolean field (is vs. get)
    public boolean isDeceased() {
        return (this.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]" : "");
    }
}