Programmēšana

Ekskursija JavaBeans pastaigā

Iepriekšējā 1 2 2. lapa 2. lapa no 2

Kas ir JavaBeans un ko tas dara

JavaBeans nav produkts, programma vai izstrādes vide. Tā ir gan galvenā Java pakete (java.pupas), ko Pupas var izmantot, lai nodrošinātu paplašinātu funkcionalitāti, un dokumentu ( JavaBeans specifikācija), kurā aprakstīts, kā izmantot klases un saskarnes java.pupas pakete, lai ieviestu "Pupiņu funkcionalitāti". Klases specifikācija ir Java 1.1 bāzes izlaiduma sastāvdaļa, tāpēc tās lietošanai nav jāinstalē papildu programmatūra. Pupiņu pievienošana prasīja maz mainīt Java valodu per se, lai gan galvenajam izlaidumam tika pievienotas vairākas jaunas un ļoti vajadzīgas API, lai atbalstītu Beans funkcijas. Specifikācijas lasīšana var būt informatīva, bet nomierinoša. Par laimi, tas nav obligāti, ja jūs jau saprotat, kā un kāpēc izmantot JavaBeans pakotni. Varbūt jūs jau saprotat Beans, lasot izklaidējošu un plašu rakstu sēriju par JavaBeans JavaWorld, piemēram.

JavaBeans klases pārvērš programmatūras komponentos, nodrošinot vairākas jaunas funkcijas. Dažas no šīm funkcijām ir raksturīgas pupiņām. Citi, piemēram, sērijveidošana, var pieteikties jebkurš klase, Pupiņa vai citādi, bet ir izšķiroša nozīme pupiņu izpratnē un lietošanā.

Programmatūras komponentiem ir īpašības, kas ir objekta atribūti. Pielāgošana ir pupas konfigurēšanas process konkrētam uzdevumam. Jauno notikumu vadīšana shēma Java 1.1 tika izveidota daļēji, lai atvieglotu saziņu starp Beans. Pupas var sadalīt IDE vai citas klases, izmantojot procesu, ko sauc pašpārbaude. Pupas var būt pastāvēja (t.i., sērijveidā) baitu plūsmās pārraidei vai uzglabāšanai, un pastāvīgās pupiņas var būt iesaiņots "JAR failos", lai atvieglotu lejupielādi un piekļuvi. Visbeidzot, pupiņas ir izstrādātas tā, lai tās būtu sadarboties viegli ar mantotajām komponentu tehnoloģijām, piemēram, ActiveX un LiveConnect, un piedalīties darījumos ar Object Request Broker sistēmām, piemēram, CORBA.

Apskatīsim katru no šīm iespējām mazliet dziļāk.

Rekvizīti un pielāgošana

Īpašības, kā minēts iepriekš, ir pupas atribūti. Vizuālās īpašības var ietvert krāsu vai ekrāna izmēru. Citiem rekvizītiem var nebūt vizuāla attēlojuma: piemēram, BrowserHistory Bean var būt rekvizīts, kas norāda maksimālo saglabājamo URL skaitu. Pupas atmasko uzstādītājs un getter metodes (sauktas par "piekļuves metodēm") to īpašībām, ļaujot citām klasēm vai IDE manipulēt ar savu stāvokli. Tiek saukts Bean īpašību iestatīšanas process projektēšanas vai izpildes laikā pielāgošana.

Izstrādātājam ir liela kontrole par Beans īpašību piekļuvi un modificēšanu. Priekš vienkāršs īpašums, izstrādātājs raksta metodi, ko sauc setProperty () un cits piezvanīja getProperty ().

Šeit jūs būtu esat redzējuši sīklietotni, taču nez kāpēc jūs to nevarat.

Joslu diagramma

Piemēram, ja izmantojat pārlūku, kurā iespējota Java, kreisajā pusē redzēsiet sīklietotni, kurā tiek izmantota mazā klase ar nosaukumu Joslu diagramma. The Joslu diagramma ir krāsaina josla starp abām pogām. Joslu diagramma trūkst tikai vienas lietas, lai kļūtu par pupiņu: tā neievieš saskarni java.io.Serializējams (jo lielākā daļa pārlūkprogrammu vēl neapstrādā Java 1.1, un tāpēc sīklietotnes piemērs neizdosies.)

Izņemot to, ka to var serializēt, Joslu diagramma ir vienkāršs Bean, tikai ar ļoti dažām metodēm. Tā ir void setPercent (int pct), kas pārpludina dibenu pct procenti no joslas ar sarkanu. Metode int getPercent () atgriež pašreizējo pupā saglabāto procentuālo daudzumu (tas ir pupas stāvoklis). The setPercent () metode arī aicina pārkrāsot () ja tas mainīja procentuālo daudzumu, lai objekta vizuālais attēlojums būtu atjaunināts.

Sīklietotnes kods izsauc setPercent (getPercent () + 10) kad +10% noklikšķina uz pogas, izraisot Joslu diagramma lai palielinātu tā procentuālo daudzumu (ja tas ir <100%). Procenti ir a piemērs Pupiņu īpašums, ar setera un getter metodēm, kas nosauktas saskaņā ar JavaBeans specifikāciju. Turpinot šo sēriju, mēs pārveidosim šo pazemīgo mazo Joslu diagramma noderīgā programmatūras komponentā, kuru var pieslēgt dažādām lietojumprogrammām.

Vērtība indeksēts īpašums ir masīvs. Indeksēto rekvizītu piekļuves metodes skalāru vietā saņem un atgriež vērtību masīvus. Piekļuves metodes var mest pārbaudītos izņēmumus, lai ziņotu par kļūdu apstākļiem.

Dažreiz ir noderīgi, ja darbība notiek, mainoties noteiktam objekta īpašumam. Saistītās īpašības izraisīt notikumu nosūtīšanu citiem objektiem, kad mainās īpašuma vērtība, iespējams, ļaujot saņēmējam veikt kādas darbības. Tātad, SpreadSheet Bean, iespējams, ir konfigurēts, lai teiktu PieChart Bean pārzīmēt sevi ikreiz, kad izmainās izklājlapas dati.

Bieži vien noteiktas īpašumu vērtības ir nelikumīgas, pamatojoties uz citu pupiņu stāvokli. Lai "klausītos" šos, var iestatīt pupiņu ierobežotas īpašības citu pupiņu, un "veto" izmaiņas tai nepatīk. Piemēram, kodolreaktora ControlRodArray Bean varētu vēlēties iejaukties, mēģinot mainīt DrainReactorCorePump Bean stāvokli uz ON, ja vadības stieņi ir izvilkti. (Nemēģiniet to darīt mājās. Iespējams, nevienam šādām lietojumprogrammām nevajadzētu izmantot JavaBeans tikai vēl.)

Kad izstrādātājs savieno Beans kopā, lai izveidotu lietojumprogrammu, IDE var uzrādīt rekvizītu lapu, kurā ir visas pupiņu īpašības un to pašreizējās vērtības. (Īpašuma lapa ir dialoglodziņš, ko izmanto, lai iestatītu un / vai skatītu rekvizītus, piemēram, to, ko iegūstat, izvēlnē atlasot Opcijas ...) Izstrādātājs grafiski iestata rekvizītus, kurus IDE tulko kā izsaukumus uz Beans's seter metodēm, mainot Pupu valsti. Šis pielāgo pupiņas konkrētajam pielietojumam.

Īpašību sarakstu izmantošana ne vienmēr ir labākais veids, kā rīkoties ar pupiņu pielāgošanu. Dažām pupiņām ir pārāk sarežģīts stāvoklis, lai ar tām varētu šādi manipulēt. Citas pupiņas būtu vienkārši foršākas, ja būtu kāds intuitīvāks veids, kā tās iestatīt. Iedomājieties sliktu vadītāju, kurš vienkārši vēlas apskatīt pārdošanas pārskatus un viņam ir jāizdomā, ko ierakstīt rekvizītu lapas tekstlodziņā "Attālā ODBC datu avots". Vai nebūtu foršāk, ja viņa varētu vienkārši vilkt un nomest DataSource Bean ikonu (protams, kas pielāgota ar etiķeti "Pārdošanas dati") uz DataConnection pupiņu, tādējādi to automātiski konfigurējot? Pupiņu izstrādātājs var iegult rekvizītu lapu pašā pupiņā, un pēc tam IDE izmanto šo "pielāgotāju", lai pielāgotu pupiņu.

Atbilstošās klases manipulēšanai ar īpašībām un pielāgošanu ir java.pupas iepakojums.

Pasākumu apstrāde

Visa šī mijiedarbība starp pupiņām paredz kaut kādu saziņas veidu. JDK 1.1 definē jaunu pasākuma modelis ka klases (ne tikai Pupas!) izmanto saziņai. Faktiski šis jaunais notikumu modelis ir nonācis vienā no Java visplašāk izmantotajām pakotnēm: java.awt!

Jaunajā notikumu modelī klase reģistrē interesi par citas klases aktivitātēm, izmantojot a klausītāja interfeiss. Faktiski mērķis objekts (ieinteresētā puse) stāsta avots objekts (interesējošais objekts), "Paziņojiet man, kad notiek tā un tā." Kad notiek tā un tā, avota objekts "izšauj" notikumu mērķī, izsaucot mērķa notikumu apstrādātāju ar apakšklasi EventObject kā arguments.

Notikumus var izmantot, lai ieviestu saistītās un ierobežotās īpašības. Iepriekš esošajā PieChart un SpreadSheet piemērā PieChart "reģistrē" interesi par visām izmaiņām SpreadSheet s (teiksim) DataList īpašums. Kad izklājlapa to mainīs DataList īpašums, tas iet a DataListChangedEvent (apakšklase no EventObject), norādot, kas mainījies, uz katra ieinteresētā klausītāja notikumu apstrādātāja metodi. Mērķis (PieChart) pēc tam pārbauda notikumu un veic atbilstošas ​​darbības.

Kodolreaktora piemērs darbojas līdzīgi; bet tādā gadījumā mērķis veto izmaiņas, izmetot izņēmumu. Tādējādi pasaule tiek izglābta no plašas radioaktīvas iznīcināšanas.

The EventObject klasi var pagarināt, lai izveidotu lietotāja definēti notikumi. Klases tagad var definēt un izmantot jaunus notikumu veidus, lai nosūtītu ziņojumus viens otram. Tas nozīmē, ka pupas, kas darbojas vienā konteinerā, var sazināties, nosūtot ziņojumus apkārt. Tas palīdz atdalīt atkarības starp objektiem, kas, kā mēs zinām, ir ļoti laba lieta.

Lietotāja noteikti (un citi) notikumi tiek atvasināti no klases java.util.EventObject.

Introspekcija

Diezgan nepāra termins pašpārbaude ir Java, kas runā par klases publisko metožu un dalībnieku programmatiskas analīzes procesu. Arī šo procesu dažkārt sauc atklājums. Jauno pārdomas mehānisms Java kodolā, kas var sadalīt objektu un atgriezt tā satura aprakstu, padara iespējamu introspekciju. (Lai gan Java var būt atstarojoša, pat introspektīva, omfaloskepsis joprojām nav daļa no pamata izplatīšanas.)

Mēs jau esam saskārušies ar vienu šīs iespējas lietojumprogrammu. Iepriekš aprakstījām IDE, kas varētu izveidot Bean īpašību sarakstu, ko iesniegt izstrādātājam. Kā IDE var zināt, kādas īpašības piemīt pupai? IDE atklāj pupiņu īpašības vienā no diviem veidiem: lūdzot pupai tās īpašību aprakstu vai sadalot pupu, to pašizpētot.

Tipisks IDE vispirms prasīs Bean pēc BeanInfo objekta, kas cita starpā apraksta Bean īpašības. Pēc tam IDE izmantos objektu BeanInfo, lai izveidotu rekvizītu lapu. (Tas nozīmē, ka Bean nenodrošina pats savu pielāgotāju.) Ja Bean nezina, kā atdot BeanInfo objektu, IDE pēc tam uzmeklē Bean un skenē metožu sarakstu nosaukumiem, kas sākas ar komplekts un gūt. Tas pieņem (pēc vienošanās), ka šīs metodes ir piekļuves īpašībām, un izveido jaunu rekvizītu lapu, pamatojoties uz esošajām piekļuves metodēm un šo metožu izmantoto argumentu tipiem. Tātad, ja IDE atrod tādas metodes kā setColor (krāsa), Krāsa getColor (), setSize (izmērs), un Izmērs getSize (), tad tā izveidos rekvizītu lapu ar īpašībām Krāsa un Izmērsun atbilstoši iestatīti logrīki to iestatīšanai.

Tas nozīmē, ka, ja izstrādātājs vienkārši ievēro piekļuves metožu nosaukšanas konvencijas, IDE var automātiski noteikt, kā komponentam izveidot pielāgošanas rekvizītu lapu.

Pārdomu mehānisms, kas veic pašpārbaudi, ir jaunās valodas pamatpaketē java.lang.reflect.

Noturība un iesaiņošana

Bieži vien ir lietderīgi objektu "sasaldēt-žāvēt", pārveidojot tā stāvokli par datu lāstu, kas jāsaliek tālākai izmantošanai - vai jānosūta pa tīklu, lai tos apstrādātu citur. Šo procesu sauc serializācija un tā ir jauna Java kodola iezīme.

Viens no vienkāršākajiem sērijveida izmantošanas veidiem ir pielāgota pupas stāvokļa saglabāšana, lai tikko izveidotās pupas īpašības varētu pareizi iestatīt izpildes laikā.

Arī sērijveidošana ir komponentu tehnoloģijas pamats, kas ļauj veikt tādas izplatītās apstrādes shēmas kā CORBA. Ja objektam lokāli nav informācijas, kas tai nepieciešama sava uzdevuma veikšanai, tas var pats nosūtīt pieprasījumu brokerim, kurš objektu sērijveidā nosūta un nosūta citur apstrādei. Attālajā galā objekts tiek atjaunots un tiek veikta sākotnēji pieprasītā darbība. Tas ir arī veids, kā realizēt slodzes līdzsvarošanu (dārgiem uzdevumiem, tas ir: sērijveida un deserializācija bieži nav lēta).

Kur jūs turat liofilizētu pupiņu grupu, kas šādā veidā ir “marinēta”? Kāpēc, protams, JAR! JavaBeans specifikācija apraksta a JAR fails kā strukturēts ZIP fails, kas satur vairākus sērijveida objektus, dokumentāciju, attēlus, klases failus un tā tālāk, ar a manifests kas apraksta JAR saturu. JAR failu, kas satur daudzus saspiestus nelielus failus, var lejupielādēt vienā gabalā un atspiest klienta galā, padarot sīklietotņu lejupielādi (piemēram) efektīvāku. (JAR diezgan acīmredzami ir Unix spēle darva faila formāts.)

The java.io pakete nodrošina objektu sērijveidošanu. JavaBeans specifikācija apraksta JAR failu formātu.

Sadarbība

Daži lunci reiz teica, ka jauka lieta standartos ir tā, ka ir tik daudz, no kā izvēlēties. Komponentu tehnoloģijas nav izņēmums. Ir daudz esošo sistēmu, kuru pamatā ir OLE (vai tās jaunākais iemiesojums, ActiveX), OpenDoc un LiveConnect. JavaBeans ir izstrādāts tā, lai (vismaz galu galā) mijiedarbotos ar šīm citām komponentu tehnoloģijām.

Nav reāli sagaidīt, ka izstrādātāji atsakās no esošajiem ieguldījumiem citās tehnoloģijās un visu atjauno Java. Kopš Java 1.1 izlaišanas ir kļuvuši pieejami pirmie Beans / ActiveX "tilta" komplekti, kas ļauj izstrādātājiem nemanāmi saistīt Beans un ActiveX komponentus vienā un tajā pašā lietojumprogrammā. Java IDL interfeiss, kas ļaus Java klasēm darboties ar esošajām CORBA sistēmām, ir paredzēts šogad.

Kaut arī Beans / ActiveX tilts un Java IDL nav daļa no JavaBeans standarta izplatīšanas, tie noapaļo JavaBeans iespējas kā rūpnieciski spēcīgu, atvērtu tehnoloģiju pārnēsājamu komponentu programmatūrai.

Secinājums

Mēs esam pārņēmuši daudz zemes. Šajā rakstā jūs uzzinājāt, kas ir programmatūras komponenti un kāpēc tie ir vērtīgi. Pēc tam jūs uzzinājāt par dažādām JavaBeans īpašībām, tostarp īpašībām, pielāgošanu, notikumiem, pašizskatīšanu, noturību, iesaiņošanu un mijiedarbību ar mantotajām komponentu sistēmām.

Nākamajā šīs sērijas rakstā mēs jums iesāksim lietot JavaBeans un padziļināti aplūkosim pupiņu īpašības: kā tās darbojas un kā padarīt pupiņas pielāgojamas. Ejot līdzi, mēs apspriedīsim jaunās Java pamatfunkcijas, kas padara Beans iespējamu. Nākamajos šīs sērijas rakstos tiks padziļināti apskatītas tēmas, kuras mēs šajā mēnesī apspriedām.

Marks Džonsons ir ieguvis Purdue universitātes datorzinātņu un elektrotehnikas grādu (1986). Viņam ir 15 gadu pieredze programmēšanā C un divus gadus C ++, un viņš ir fanātisks Dizaina modeļa pieejas objektorientētā arhitektūrā, programmatūras komponentu teorijā un JavaBeans bhakta. Pēdējo gadu laikā viņš strādāja Kodak, Booz-Allen un Hamilton, kā arī EDS Mehiko, izstrādājot Oracle un Informix datu bāzes lietojumus Meksikas Federālajam vēlēšanu institūtam un Meksikas muitai. Viņš pavadīja pagājušo gadu, strādājot NETdelivery, interneta startēšanas vietā Boulderā, CO. Marks ir krāsots Unix programmētājs, kurš redz Java kā trūkstošo saiti starp tagad visuresošajām darbvirsmas klientu sistēmām un atvērtajām, izplatītajām, un mērogojamu uzņēmuma aizmuguri. Pašlaik viņš strādā par dizaineru un izstrādātāju Object Products Fort Collins, CO.

Uzziniet vairāk par šo tēmu

  • Lielisku JavaBeans un ActiveX salīdzinājumu var atrast Merlin Hughes JavaWorld vāka stāsts "JavaBeans un ActiveX iet viens pret otru"

    //www.javaworld.com/javaworld/jw-03-1997/jw-03-avb-tech.html

  • Sun Microsystems uztur JavaBeans vietni. Šajā vietnē varat lejupielādēt jaunāko BDK (Beans Developer's Kit), izlasīt JavaBeans specifikāciju, sērfot, izmantojot tiešsaistes apmācību, un uzzināt par jaunāko informāciju par Beans. //java.sun.com/beans
  • The JavaBeans padomnieks, neregulārs elektroniskais biļetens ar Beans jaunumiem un izstrādātāju padomiem, tiek arhivēts vietnē

    //splash.javasoft.com/beans/Advisor.html

  • The Jautājumi par JavaBeans uztur Saule ir plkst

    //splash.javasoft.com/beans/FAQ.html

  • Visbeidzot, omfaloskepsis ir introspektīvās meditācijas forma, kas ietver intensīvu nabas apceri. Apskatiet vietni Word A Day un aizpildiet savu ikdienas runu ar neskaidrajām atsaucēm! //www.wordsmith.org/awad/index.html

Šo stāstu "JavaBeans pastaigu ekskursija" sākotnēji publicēja JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found