JavaBeans
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]");
}
}
Ծանոթագրություններ
- ↑ «Спецификация JavaBeans». www.oracle.com (ամերիկյան անգլերեն). Արխիվացված օրիգինալից 2021 թ․ ապրիլի 16-ին. Վերցված է 2021 թ․ մարտի 31-ին.