Jump to content

JavaBeans

Վիքիպեդիայից՝ ազատ հանրագիտարանից
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

JavaBeans՝ դասեր Java լեզվով, որոնք գրված են որոշակի կանոնների համաձայն։ Դրանք օգտագործվում են մի քանի առարկաներ մեկում միավորելու համար (անգլ.՝ bean - հատիկներ, սուրճի հատիկներ) օբյեկտների հարմար փոխանցման համար[1]։

Sun Microsystems-ի հստակեցումը սահմանում է JavaBeans-ը որպես բազմակի օգտագործման ծրագրային բաղադրիչներ, որոնք կարող են շահագործվել գրաֆիկական դիզայներների և IDE գործիքների միջոցով։

JavaBeans-ը հիմք է տալիս բազմակի օգտագործման, ներկառուցվող և մոդուլային ծրագրային բաղադրիչների համար։ JavaBeans-ը գալիս է բազմաթիվ ձևերով, բայց դրանք առավել հաճախ օգտագործվում են GUI տարրերում։ JavaBeans-ի ստեղծման նպատակներից մեկը նմանատիպ բաղադրիչ կառուցվածքների հետ փոխգործակցությունն է։ Օրինակ, Windows ծրագիրը, հաշվի առնելով համապատասխան կամուրջը կամ դեկորատոր օբյեկտը, կարող է օգտագործել JavaBeans բաղադրիչը, կարծես դա COM կամ ActiveX բաղադրիչ է։

JavaBean նկարագրության կանոններ

Որպեսզի դասը աշխատի որպես bean, այն պետք է հետևի որոշակի մեթոդի անվանման, կոնստրուկտորի և վարքագծի կանոններին։ Այս կոնվենցիաները հնարավորություն են տալիս ստեղծել գործիքներ, որոնք կարող են օգտագործել, փոխարինել և կապել JavaBeans-ը։

Նկարագրության կանոններն են.

  • Դասը պետք է ունենա անպարամետր կոնստրուկտոր՝ public հասանելիության փոփոխիչով։ Նման կոնստրուկտորը գործիքներին հնարավորություն է տալիս ստեղծել օբյեկտ՝ առանց պարամետրերի լրացուցիչ բարդության։
  • Դասի հատկությունները պետք է հասանելի լինեն get, set և այլ մեթոդների միջոցով (կոչվում են աքսեսուարներ), որոնք պետք է հետևեն անվանման ստանդարտ կոնվենցիային։ Սա հեշտությամբ թույլ է տալիս գործիքներին ավտոմատ կերպով հայտնաբերել և թարմացնել bean բովանդակությունը։ Շատ գործիքներ նույնիսկ ունեն մասնագիտացված խմբագիրներ տարբեր տեսակի հատկությունների համար։
  • Դասը պետք է սերիականացվի։ Սա հնարավորություն է տալիս հուսալիորեն պահպանել, պահել և վերականգնել bean վիճակը հարթակից և վիրտուալ մեքենայից անկախ եղանակով։
  • Դասը պետք է ունենա հավասար(), hashCode() և toString() մեթոդները։

Քանի որ պահանջները հիմնականում գրված են որպես կոնվենցիա, այլ ոչ թե միջերես, որոշ մշակողներ JavaBeans-ը համարում են պարզ հին Java օբյեկտներ, որոնք հետևում են անվանման որոշակի կոնվենցիաներին։

Օրինակներ

// PersonBean.java

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

    public PersonBean() {
    }

    // Методы геттеры (get) и сеттеры (set)
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public boolean getDeceased() {
        return deceased;
    }
    public void setDeceased(boolean deceased) {
        this.deceased = deceased;
    }

    //Переопределенные методы equals() и hashCode()
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        PersonBean that = (PersonBean) o;

        if (deceased != that.deceased) {
            return false;
        }
        return !(name != null ? !name.equals(that.name) : that.name != null);

    }

    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + (deceased ? 1 : 0);
        return result;
    }

    //Переопределенный метод toString()
    @Override
    public String toString() {
        return "PersonBean{" +
                "name='" + name + '\'' +
                ", deceased=" + deceased +
                '}';
    }
}
// TestPersonBean.java

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

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

        // Результат: "Bob [deceased]"
        System.out.print(person.getName());
        System.out.println(person.getDeceased() ? " [deceased]" : " [alive]");
    }
}

Ծանոթագրություններ

  1. «Спецификация JavaBeans». www.oracle.com (ամերիկյան անգլերեն). Արխիվացված օրիգինալից 2021 թ․ ապրիլի 16-ին. Վերցված է 2021 թ․ մարտի 31-ին.