Java technologie zaawansowane Pawe Rzechonek Instytut Informatyki Uniwersytetu

  • Slides: 17
Download presentation
Java – technologie zaawansowane Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego

Java – technologie zaawansowane Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego

Organizacja zajęć w semestrze letnim 2010/2011 n n Cel: poznanie i przećwiczenie wybranych technologii

Organizacja zajęć w semestrze letnim 2010/2011 n n Cel: poznanie i przećwiczenie wybranych technologii Javy. Wymagania: umiejętność programowania w języku Java (programowanie obiektowe, zaawansowane konstrukcje językowe, typy sparametryzowane).

Organizacja zajęć w semestrze letnim 2010/2011 Wykład: n wykładowca: Paweł Rzechonek n mail: prz@ii.

Organizacja zajęć w semestrze letnim 2010/2011 Wykład: n wykładowca: Paweł Rzechonek n mail: prz@ii. uni. wroc. pl n strona www z notatkami, materiałami, programami, listą zadań i ogłoszeniami bieżącymi: http: //www. ii. uni. wroc. pl/~prz/2011 lato/java. html

Organizacja zajęć w semestrze letnim 2010/2011 Laboratorium: n po każdym wykładzie będzie do zaprogramowania

Organizacja zajęć w semestrze letnim 2010/2011 Laboratorium: n po każdym wykładzie będzie do zaprogramowania zadanie związane tematycznie z treścią wykładu; n zadania należy oddawać w wyznaczonym terminie; n za każde zadanie można otrzymać do 10 punktów; n programy należy prezentować osobiście na pracowni; n na ocenę dostateczną trzeba do końca semestru zdobyć 50% z możliwych do uzyskania punktów;

Java – technologie zaawansowane Wykład 1 (28 lutego 2011) Java. Beans – programowanie komponentowe

Java – technologie zaawansowane Wykład 1 (28 lutego 2011) Java. Beans – programowanie komponentowe

Komponenty programowe n n Java. Bean (ang. bean – ziarno) to ziarno, czyli programowy

Komponenty programowe n n Java. Bean (ang. bean – ziarno) to ziarno, czyli programowy komponent Sposoby odczytywania i zmieniania stanu obiektu Java. Bean: n n n standardowe wzorce deklaracji metod, introspekcja realizowana za pomocą klasy Introspector. W pakiecie java. beans znajdują się klasy, interfejsy i wyjątki wspierające programowanie ziaren.

Właściwości n n Ziarna mają właściwości określające stan obiektu. Dostęp do właściwości zapewniają metody

Właściwości n n Ziarna mają właściwości określające stan obiektu. Dostęp do właściwości zapewniają metody w klasie ziarna, zwane akcesorami: n n Akcesory odczytujące właściwości nazywane są getterami, Akcesory ustalające nowe wartości właściwości ziarna nazywane są setterami.

Właściwości n Typy właściwości: n n n n właściwości proste (jedna wartość), właściwości indeksowane

Właściwości n Typy właściwości: n n n n właściwości proste (jedna wartość), właściwości indeksowane (wiele wartości umieszczonych w tablicy). Getter dla właściwości prostej nielogicznej o nazwie Prop i typie Type: Type get. Prop () {…} Getter dla właściwości prostej logicznej o nazwie Prop: boolean is. Prop () {…} Setter dla właściwości prostej o nazwie Prop i typie Type: void set. Prop (Type v) {…} Getter dla właściwości indeksowanej o nazwie Prop i typie Type: Type get. Prop (int i) {…} Type[] get. Prop () {…} Setter dla właściwości indeksowanej o nazwie Prop i typie Type: void set. Prop (int i, Type v) {…} void set. Prop (Type[] arr) {…}

Właściwości n Właściwość ziarna może być nieograniczona (ang. bounded): n n n o zmianie

Właściwości n Właściwość ziarna może być nieograniczona (ang. bounded): n n n o zmianie właściwości nieograniczonej mogą być powiadamiane inne ziarna i mogą one reagować na tę zmianę. Właściwość ziarna może być ograniczona (ang. constrained): n n o zmianie właściwości ograniczonej mogą być powiadamiane inne zainteresowane ziarna, są one pytane o zgodę na tę zmianę i jeśli któreś z zainteresowanych ziaren zawetuje ją (nie da zgody) to zmiana nie dochodzi do skutku.

Nasłuch zmian n Setter zarówno nieograniczonej jak i ograniczonej właściwości musi wygenerować zdarzenie Property.

Nasłuch zmian n Setter zarówno nieograniczonej jak i ograniczonej właściwości musi wygenerować zdarzenie Property. Change. Event. Ziarna mające właściwości nieograniczone powinny dostarczyć metody: public void add. Property. Change. Listener (Property. Change. Listener) {…} public void remove. Property. Change. Listener (Property. Change. Listener) {…} Ziarna mające właściwości ograniczone powinny dostarczyć metody: public void add. Vetoable. Change. Listener (Vetoable. Change. Listener) {…} public void remove. Vetoable. Change. Listener (Vetoable. Change. Listener) {…}

Własne ziarna Zdefiniowanie własnego ziarna wymaga zdefiniowania klasy, która: n stosuje ogólnie przyjęte wzorce

Własne ziarna Zdefiniowanie własnego ziarna wymaga zdefiniowania klasy, która: n stosuje ogólnie przyjęte wzorce sygnatur metod oraz ewentualnie uzupełniona jest przez dodatkową klasę opisującą informacje o ziarnie (implementacja interfejsu Bean. Info); n zapewnia serializację obiektów; n posiada konstruktor bezparametrowy; n uwzględnia pracę w środowisku wielowątkowym.

Nasłuch i wetowanie zmian n Zmiana właściwości generuje zdarzenie Property. Change. Event. Komponenty zainteresowane

Nasłuch i wetowanie zmian n Zmiana właściwości generuje zdarzenie Property. Change. Event. Komponenty zainteresowane śledzeniem zmian pewnej właściwości muszą implementować interfejs Property. Change. Listener. Komponenty, które mogą wetować zmiany pewnej właściwości muszą implementować interfejs Vetoable. Change. Listener.

Nasłuch i wetowanie zmian Obiekt zdarzenia typu Proprty. Change. Event możemy zadpytać o: n

Nasłuch i wetowanie zmian Obiekt zdarzenia typu Proprty. Change. Event możemy zadpytać o: n nazwę właściwości String get. Property. Name () n n starą (przed zmianą) wartość właściwości Object get. Old. Value () nową (aktualną) wartość właściwości Object get. New. Value ()

Nasłuch i wetowanie zmian n Interfejs Property. Change. Listener ma jedną metodę: public void

Nasłuch i wetowanie zmian n Interfejs Property. Change. Listener ma jedną metodę: public void property. Change (Property. Change. Event ev); Interfejs Vetoable. Change. Listener ma jedną metodę: public void vetoable. Change (Property. Change. Event ev) throws Property. Veto. Exception; Wetowanie zmiany polega na zgłoszeniu wyjątku Property. Veto. Exception.

Nasłuch zmian n n Słuchacze zmian właściwości nieograniczonych muszą zostać przyłączeni do źródła zdarzenia,

Nasłuch zmian n n Słuchacze zmian właściwości nieograniczonych muszą zostać przyłączeni do źródła zdarzenia, czyli do ziarna. Słuchacza przyłączamy do ziarna za pomocą metody add. Property. Change. Listener(…). W ziarnie powinna też być zdefiniowana metoda odłączająca słuchacza od ziarna remova. Property. Change. Listener(…). Każdy setter zmianiający właściwość nieograniczoną musi wygenerować zdarzenie Property. Change. Event i rozpropagować je wśród przyłączonych słuchaczy. Istnieje klasa narzędziowa Property. Change. Support, ułatwiająca przyłączanie i odłączanie słuchaczy oraz propagowanie zdarzeń wśród przyłączonych słuchaczy zmian określonej właściwości. Klasa ta posiada metody: n n przyłączania i odłączania słuchaczy zmian add. Property. Change. Listener(…) i remove. Property. Change. Listener(…); generujące i propagujące zdarzenia zmiany fire. Property. Change(…) i fire. Indexed. Property. Change(…).

Wetowanie zmian n n Słuchacze zmian właściwości ograniczonych muszą zostać przyłączeni do źródła zdarzenia,

Wetowanie zmian n n Słuchacze zmian właściwości ograniczonych muszą zostać przyłączeni do źródła zdarzenia, czyli do ziarna. Słuchacza przyłączamy do ziarna za pomocą metody add. Vetoable. Change. Listener(…). W ziarnie powinna też być zdefiniowana metoda odłączająca słuchacza od ziarna remova. Vetoable. Change. Listener(…). Każdy setter zmianiający właściwość ograniczoną musi wygenerować zdarzenie Property. Change. Event i rozpropagować je wśród przyłączonych słuchaczy. Istnieje klasa narzędziowa Vetoable. Change. Support, ułatwiająca przyłączanie i odłączanie słuchaczy oraz propagowanie zdarzeń wśród przyłączonych słuchaczy zmian określonej właściwości. Klasa ta posiada metody: n n przyłączania i odłączania słuchaczy zmian add. PVetoable. Change. Listener(…) i remove. Vetoable. Change. Listener(…); generujące i propagujące zdarzenia zmiany fire. Vetoable. Change(…).

Literatura (Java. Beans) n n K. Barteczko: Java – od podstaw do technologii. Tom

Literatura (Java. Beans) n n K. Barteczko: Java – od podstaw do technologii. Tom 2. Wydawnictwo MIKOM, Warszawa 2004. Java. Beans(TM) Tutorial: http: //download. oracle. com/ javase/tutorial/javabeans/