JavaBeans - JavaBeans

Java platformasi asosida hisoblashda, JavaBeans ko'pchilikni o'z ichiga olgan sinflardir ob'ektlar bitta ob'ektga (loviya). Ular seriyalash mumkin, bor nol argumentli konstruktor va xususiyatlardan foydalanishga ruxsat bering getter va setter usullari. Yaratishni maqsad qilgan ushbu standartni qamrab olish uchun "Bean" nomi berilgan qayta foydalanish mumkin dasturiy ta'minot komponentlari uchun Java.

Bu Java-da yozilgan, dastur tuzish vositasida ingl.

Xususiyatlari

Introspektsiya
Introspektsiya - bu uning imkoniyatlarini aniqlash uchun fasolni tahlil qilish jarayoni. Bu Java Beans API-ning muhim xususiyatidir, chunki u boshqa dasturga, masalan, dizayn vositasi, tarkibiy qism haqida ma'lumot olishga imkon beradi.
Xususiyatlari
Xususiyat bu Bean shtatining kichik qismidir. Xususiyatlarga berilgan qiymatlar ushbu komponentning xatti-harakatini va ko'rinishini belgilaydi. Ular setter usuli orqali o'rnatiladi va getter usuli bilan olinishi mumkin.
Xususiylashtirish
Moslashtiruvchi komponentni muayyan kontekstda ishlatish uchun jarayon bajarilishi kerak bo'lgan bosqichma-bosqich ko'rsatma berishi mumkin.
Tadbirlar
Fasol EventObject EventListener modeli bilan o'zaro ta'sir qilishi mumkin.[tushuntirish kerak ]
Qat'iylik
Qat'iylik - bu fasolning hozirgi holatini, shu jumladan fasolning xususiyatlari va misoli o'zgaruvchilarining qiymatlarini tejashga yaroqsiz saqlash va keyinchalik ularni qaytarib olish qobiliyati.
Usullari
Fasol ishlatilishi kerak accessor usullari ga kapsulaga soling xususiyatlari. Fasol, xususiyatlarga kirish bilan bog'liq bo'lmagan biznes mantig'i uchun boshqa usullarni taqdim etishi mumkin.

Afzalliklari

  • Fasolning xususiyatlari, hodisalari va usullari boshqa dasturga ta'sir qilishi mumkin.
  • Fasol boshqa ob'ektlardan hodisalarni qabul qilish uchun ro'yxatdan o'tishi va boshqa ob'ektlarga yuboriladigan hodisalarni yaratishi mumkin.
  • Fasolni sozlashda yordamchi dasturiy ta'minot berilishi mumkin.
  • Dukkaklilarning konfiguratsiya parametrlari doimiy saqlash uchun saqlanishi va tiklanishi mumkin.

Kamchiliklari

  • A bilan sinf nol argumentli konstruktor yaroqsiz holatga keltirilishi kerak.[1] Agar bunday sinf ishlab chiquvchi tomonidan qo'lda o'rnatilsa (avtomatik ravishda emas, balki biron bir ramka asosida), ishlab chiquvchi sinf noto'g'ri tashkil etilganligini tushunmasligi mumkin. Tuzuvchi bunday muammoni aniqlay olmaydi va hatto hujjatlashtirilgan bo'lsa ham, ishlab chiquvchi hujjatlarni ko'rishiga kafolat yo'q.
  • JavaBeans tabiiy ravishda o'zgaruvchan va shuning uchun ular tomonidan taqdim etiladigan afzalliklarga ega emas o'zgarmas narsalar.[1]
  • Har bir mulk uchun getters va ko'pchilik, ko'pchilik yoki barchasi uchun setterlar yaratish kerak, bu juda katta miqdorga olib kelishi mumkin qozon plitasi. Kabi vositalar yordamida buni yumshatish mumkin Lombok.

JavaBeans API

JavaBeans funktsiyasi .da joylashgan sinflar va interfeyslar to'plami bilan ta'minlangan java. loviya paket.

InterfeysTavsif
AppletInitializerUshbu interfeysdagi usullar ham fasolni ishga tushirish uchun ishlatiladi appletlar.
BeanInfoUshbu interfeys dizaynerga Bean voqealari, usullari va xususiyatlari haqida ma'lumotni ko'rsatishga imkon beradi.
BuyurtmachiUshbu interfeys dizaynerga loviya tuzilishi mumkin bo'lgan grafik foydalanuvchi interfeysini taqdim etishga imkon beradi.
DesignModeUshbu interfeysdagi usullar fasolning dizayn rejimida bajarilishini aniqlaydi.
ExceptionListenerIstisno yuz berganda ushbu interfeysdagi usul chaqiriladi.
PropertyChangeListenerUshbu interfeysdagi usul bog'langan xususiyat o'zgartirilganda chaqiriladi.
Mulk tahririUshbu interfeysni amalga oshiradigan ob'ektlar dizaynerga xususiyat qiymatlarini o'zgartirish va aks ettirishga imkon beradi.
VetoableChangeListenerUshbu interfeysdagi usul Contrained xususiyati o'zgartirilganda chaqiriladi.
Ko'rinishUshbu interfeysdagi usullar fasolni GUI mavjud bo'lmagan muhitda bajarishga imkon beradi.

JavaBean konventsiyalari

JavaBean sifatida ishlash uchun sinf, ob'ekt sinfi usul nomlanishi, tuzilishi va xulq-atvori haqidagi ba'zi konventsiyalarga bo'ysunishi kerak. Ushbu konventsiyalar Java fasolidan foydalanishi, qayta ishlatishi, almashtirishi va ulanishi mumkin bo'lgan vositalarga ega bo'lishga imkon beradi.

Kerakli konvensiyalar quyidagilar:

  • Sinf jamoatchilikka ega bo'lishi kerak standart konstruktor (argumentlarsiz). Bu tahrirlash va faollashtirish doiralarida osonlikcha tezkor ishlashga imkon beradi.
  • Sinf xususiyatlari yordamida kirish kerak olish, o'rnatilgan, bu (get o'rniga mantiqiy xususiyatlar uchun ishlatilishi mumkin), ga va boshqa usullar (shunday deb ataladi) accessor usullari va mutator usullari ) standartga muvofiq nomlash konvensiyasi. Bu osonlik bilan avtomatlashtirilgan tekshiruv va fasol holatini yangilashga imkon beradi, ularning aksariyati turli xil xususiyatlar uchun maxsus muharrirlarni o'z ichiga oladi. Setters bir yoki bir nechta argumentga ega bo'lishi mumkin.
  • Sinf bo'lishi kerak seriyalash mumkin. (Bu ilova va ramkalarga ishonchli tarzda saqlash, saqlash va dan loviya holatini tiklashga imkon beradi VM va platforma.)

Kod misoli

paket o'yinchi;jamoat sinf PersonBean asboblar java.io.Serializatsiyalanadigan {    / ** Xususiyatlar ** /    xususiy mantiqiy marhum = yolg'on;    xususiy Ro'yxat ro'yxat;    / ** mulk "nomi", o'qilishi mumkin / yozilishi mumkin. * /    xususiy Ip ism = bekor;    / ** No-arg konstruktori (argumentlarni qabul qilmaydi). * /    jamoat PersonBean() {    }    jamoat Ro'yxat getList() {        qaytish ro'yxat;    }	    jamoat bekor setList(final Ro'yxat ro'yxat) {        bu.ro'yxat = ro'yxat;    }    /**     * Mulk "nomi" uchun Getter.     */    jamoat Ip getName() {        qaytish ism;    }    /**     * Mulk "nomi" uchun sozlovchi.     *     * @param qiymati     */    jamoat bekor setName(final Ip qiymat) {        bu.ism = qiymat;    }    /**     * "Vafot etgan" mulkni olish     * Mantiqiy maydon uchun turli sintaksis (vs. ga teng)     */    jamoat mantiqiy vafot etgan() {        qaytish marhum;    }    /**     * "Vafot etgan" mulkni belgilovchi.     * @param qiymati     */    jamoat bekor setDeceased(mantiqiy qiymat) {        marhum = qiymat;    }}

TestPersonBean.java:

Import futbolchi.PersonBean;/** * "TestPersonBean" klassi. */jamoat sinf TestPersonBean {    /**     * "PersonBean" klassi uchun "asosiy" sinov usuli.     *     * @param argumentlari     */    jamoat statik bekor asosiy(final Ip[] dalillar) {        final PersonBean shaxs = yangi PersonBean();        shaxs.setName("Bob");        shaxs.setDeceased(yolg'on);        shaxs.setList(yangi ArrayList());        // Chiqish: "Bob [tirik]"        Tizim.chiqib.chop etish(shaxs.getName());        Tizim.chiqib.println(shaxs.vafot etgan() ? "[marhum]" : "[tirik]");    }}
 id ="odam" sinf ="player.PersonBan" qamrov ="sahifa"/> ism ="odam" xususiyat ="*"/><html>    <body>        Ism:  ism ="odam" xususiyat ="ism"/> 
Vafot etganmisiz? ism ="odam" xususiyat ="vafot etgan"/>
<br/> ism ="beanTest" usul ="POST" harakat ="testPersonBean.jsp"> Ismni kiriting: turi ="matn" ism ="ism" hajmi ="50">
Variantni tanlang: ism ="vafot etgan"> qiymati ="yolg'on">Tirik</option> qiymati ="rost">O'lik</option> </select> turi ="topshirish" qiymati ="Fasolni sinab ko'ring"> </form> </body></html>

Adabiyotlar

  1. ^ a b Bloch, Joshua (2008). Samarali Java (Ikkinchi nashr). Addison-Uesli. p.13. ISBN  978-0-321-35668-0.

Tashqi havolalar