Ključ programerskog uspeha je u višestrukom korišćenju napisanog koda. Najnaprednija tehnologija te vrste nosi ime softverske komponente, a njen predstavnik je JavaBeans, jedan od glavnih oslonaca Jave u bitci za dominaciju na tržištu razvojnih alata. | |
Ivan Ristić |
Java nije odmah dobila okruženje pogodno za korišćenje softverskih komponenti. Tek Jave 1.1 specifikacijom se precizno definiše način pisanja klasa, kojim one postaju "zrna" (Beans). BeanBox
JavaSoft-ov Bean Development Kit, sa desetak gotovih primera, pretvara čitavu ovu priču u praksu. Koristeći BeanBox možete da ubacuje "zrna" u peščanik, međusobno ih povezujete i izazivate događaje. Zahvaljujući dobro izabranim primerima, proces istraživanja JavaBeans tehnologije je vrlo zabavan. Prva stvar koju sam probao (baš kao i pola miliona drugih ljudi, pretpostavljam) je da na radnu površinu postavim Jugglera i dva tastera. Pritiskom na prvi taster žongler počinje sa žongliranjem, a pritiskom na drugi prestaje. Jednostavnost kreiranja je zadivljujuća.
JavaBeans u praksi: jedan od prvih primera je "žongler", koga kontrolišete koristeći dva tastera. Na slici gore možete videti ovaj primer, kao i radnu površinu posle pola sata igranja ovom aplikacijom. Da biste se i sami poigrali, potrebni su vam sledeći sastojci: Java Development Kit 1.1.4 ili viši, Bean Development Kit (Februar 98) i nešto slobodnog prostora na disku. Kao i uvek, sve relevantne informacije o Javi preuzećete sa www.javasoft.com. |
Umesto da kuću gradite tako što sve, čak i najmanje delove, pravite sami, zidate koristeći gotove komponente različitih proizvođača, sklapajući od njih celinu. Ovakav proces, tako uobičajen u životu, dugo nije bio moguć u programerskom svetu; prvo popularno razvojno okruženje koje je uspešno primenilo ovakav proces bio je Microsoft Visual Basic, a sledili su ga i mnogi drugi. Osnovni cilj je brzina: tempo kreiranja današnjih softverskih paketa je paklen, a od projektanata se po pravilu očekuje da softver bude završen "juče". A ako se tu uračunaju i izbegnuti troškovi testiranja i ispravljanja grešaka, dobici su mnogo veći. |
Mr. Bean
Pošto je uspeh Jave iznenadio i same kreatore jezika, ovo okruženje je dugo postojalo bez standarda za "pakovanje" u softverske komponente. Tek je verzija Jave 1.1 (ne dajte se zavarati, razlike između verzija 1.0 i 1.1 su ogromne) donela specifikaciju o kojoj je ovde reč. Specifikacijom se precizno definiše način pisanja klasa, kojim one postaju "zrna" (Beans - moglo bi se prevesti i kao "pasulj"). Razlika između klase i "zrna" je zapravo vrlo mala, pa tako dolazimo do glavne prednosti JavaBeans tehnologije: jednostavnost.
|
Metodi i događaji
Događaji su jedini vid komunikacije "zrna" sa spoljnim svetom. Događaj je predstavljen objektom klase java.util.EventObject (ili iz nje izvedene klase). Dužnost "zrna" je da vredno radi i kreira definisane događaje kad god je to potrebno. Osim toga, dužnost "zrna" je i da obezbedi metode kojima će se drugi zainteresovani objekti prijavljivati za primanje određenih događaja. Za svaki događaj je potreban po jedan par metoda.
Uzmimo za primer imaginarno "zrno" LazyBean, koje obavlja neki posao koji dugo traje. Lepo bi nam došao događaj StatusChangeEvent, ekstenzija standardnog događaja koja sve "zainteresovane stranke" obaveštava o trenutnom stanju zadatka koji se izvršava (slika 1). Uz svaki događaj (ili grupu događaja koji su logički povezani) ide bar jedan interfejs koji predstavlja "uputstvo" ostalim objektima za primanje događaja. Poslednja karika u ovom lancu je par metoda potrebnih za prijavljivanje i odjavljivanje primanja određenih događaja. U našem slučaju, oni bi izgledali kao na slici 2 (listener je objekat klase java.util.Vector).
|
Korišćenje JavaBeans-a
"Zrno" koristite kao i svaku drugu klasu: novi objekat kreiraćemo new pozivom, ako smo zainteresovani prijavićemo se za primanje događaja koje "zrno" šalje i to je sve. Ako želimo da kreiramo "zrno" čije ime ne znamo u toku pisanja programa, poslužićemo se klasom java.beans.Bean, koja poseduje metod instantiate(), kojim se kreira "zrno" samo na osnovu zadatog naziva.
|
Šta će biti sutra?
Pretpostavljajući da će JavaBeans tehnologija uspeti, u JavaSoft-u ubrzano rade na ispravljanju nedostataka postojeće specifikacije. Sledeća verzija nosi ime Glasgow i trebalo bi da donese bar tri nove osobine: Drag & Drop funkcionalnost (što je zapravo deo JFC-a ali blisko povezano sa JavaBeans-om), specifikaciju za interakciju "zrna" sa okolinom (slično AppletContext-u, ali komplikovanije) i JavaBeans Activation Framework, tehnologiju koja omogućava pridruživanje tipa grupi podataka i čuvanje svih informacija o tom tipu kao i o "zrnima" potrebnim da njime barataju. Očigledno, broj API-ja koji postoji raste ogromnom brzinom, a da li je to dobro, ostaje da se vidi.
|