KONCEPCJA WZORCÓW PROJEKTOWYCH W J ZYKU JAVA

Podobne dokumenty
Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Projektowanie bazy danych

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

Projektowanie systemów informacyjnych: język UML

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Systemy mikroprocesorowe - projekt

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

I. Zakładanie nowego konta użytkownika.

Konfiguracja historii plików

Charakterystyka systemów plików

Harmonogramowanie projektów Zarządzanie czasem

Wprowadzenie do programowania aplikacji mobilnych

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

INSTRUKCJA WebPTB 1.0

Wzorce projektowe i refaktoryzacja

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Programowanie obiektowe

OPIS PRZEDMIOTU ZAMÓWIENIA DO ZAPYTANIA KE1/POIG 8.2/13

Korzy ci wynikaj ce ze standaryzacji procesów w organizacjach publicznych a zarz dzanie jako ci

Kancelaris - Zmiany w wersji 2.50

Jak korzystać z Group Tracks w programie Cubase na przykładzie EWQLSO Platinum (Pro)

InsERT GT Własne COM 1.0

VinCent Office. Moduł Drukarki Fiskalnej

elektroniczna Platforma Usług Administracji Publicznej

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Wprowadzenie do zarządzania procesami biznesowymi czym są procesy biznesowe: Part 1

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

INSTRUKCJA Panel administracyjny

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

problem w określonym kontekście siły istotę jego rozwiązania

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

Specyfikacja techniczna banerów Flash

E-faktura PKP Energetyka

Tytuł pracy. Praca dyplomowa inżynierska. Filip Piechocki. Tytuł Imię i Nazwisko

Zagadnienia projektowania aplikacji J2EE

Platforma do obsługi zdalnej edukacji

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

DOTACJE NA INNOWACJE. Zapytanie ofertowe

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

ARCHITEKTURA INSTYTUCJI JAKO NARZĘDZIE UŁATWIAJĄCE ZARZĄDZANIE DANYMI

Sieci komputerowe cel

Elementy animacji sterowanie manipulatorem

Archiwum Prac Dyplomowych

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

Użytkowanie elektronicznego dziennika UONET PLUS.

Edycja geometrii w Solid Edge ST

Sieci komputerowe. Definicja. Elementy

Video And Map. Grzegorz Pieniążek. Video And Map jest to projekt wykorzystujący Google Maps i Youtube API

Microsoft Management Console

SZABLONY KOMUNIKATÓW SPIS TREŚCI

Foldery z dokumentami 1.0 dodatek do Symfonia Faktura dla 1 firmy

Wykład 1 Inżynieria Oprogramowania

Bazy danych. Andrzej Łachwa, UJ, /15

Poniżej instrukcja użytkowania platformy

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Zarządzanie Zasobami by CTI. Instrukcja

INFORMATOR TECHNICZNY WONDERWARE

Bolączki międzynarodowego systemu - jak z tego korzystać?

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Projektowanie systemów informatycznych

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Od redakcji. Symbolem oznaczono zadania wykraczające poza zakres materiału omówionego w podręczniku Fizyka z plusem cz. 2.

Wybrane programy profilaktyczne

Regulamin realizacji projektu edukacyjnego w Gimnazjum w Niechobrzu.

Współczesne nowoczesne budownictwo pozwala na wyrażenie indywidualnego stylu domu..

Dobre praktyki w zakresie zarządzania ładem architektury korporacyjnej

Infrastruktura krytyczna dużych aglomeracji miejskich wyznaczanie kierunków i diagnozowanie ograniczeńjako wynik szacowania ryzyka

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Informacje o omawianym programie. Założenia programu omawianego w przykładzie

Spring MVC Andrzej Klusiewicz 1/18

PRAWO PRACY NAJNOWSZE ZMIANY jak prawidłowo stosować przepisy k.p.

System kontroli wersji SVN

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

1. Podstawy budowania wyra e regularnych (Regex)

REJESTRACJA NA LEKTORATY Z JĘZYKÓW OBCYCH

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

ZAANGA OWANIE PRACOWNIKÓW W PROJEKTY INFORMATYCZNE

Instalacja programu. Omówienie programu. Jesteś tu: Bossa.pl

WEBML I UML JAKO NARZĘDZIA PROJEKTOWANIA APLIKACJI INTERNETOWYCH

Szczegółowe wyjaśnienia dotyczące definicji MŚP i związanych z nią dylematów

Instrukcja wprowadzania ocen do systemu USOSweb

Elementy i funkcjonalno

Programowanie obiektowe - 1.

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Nowe funkcjonalności

Ćwiczenie 6.5. Otwory i śruby. Skrzynia V

Prof. dr hab. Cynthia A. Tyson

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

KONCEPCJA NAUCZANIA PRZEDMIOTU RACHUNKOWOŚĆ SKOMPUTERYZOWANA" NA WYDZIALE ZARZĄDZANIA UNIWERSYTETU GDAŃSKIEGO

REGULAMIN przeprowadzania okresowych ocen pracowniczych w Urzędzie Miasta Mława ROZDZIAŁ I

enova Workflow Obieg faktury kosztowej

Instrukcja programu PControl Powiadowmienia.

Polityka prywatności strony internetowej wcrims.pl

Transkrypt:

KONCEPCJA WZORCÓW PROJEKTOWYCH W J ZYKU JAVA Michał Małecki Instytut Informatyki i Elektroniki, Uniwersytet Zielonogórski 65-246 Zielona Góra, ul. Podgórna 50 e-mail: m.malecki@iie.uz.zgora.pl STRESZCZENIE Na pocz tku lat 90 w rodowisku programistów zacz to gor co dyskutowa na temat idei wzorców projektów. Pierwsze prace zwi zane były z poszukiwaniem i opisywaniem wzorców bez odniesienia w konkretnym j zyku programowania. Dopiero praca The Design Patterns Smalltalk Companion opisywała wzorce, ale z punktu widzenia j zyka Smalltalk. Referat ma zaznajomi programistów w j zyku Java z wzorcami projektowymi. Zaprezentowane wzorce zostały podzielone na trzy kategorie: konstrukcyjne, strukturalne i czynno ciowe. W drugiej cz ci omówiono wzorce projektowe dla programistów Java 2 Enterprise Edition. 1. WPROWADZENIE Ka dy programista przed napisaniem fragmentu kodu tworzy go w swoim umy le. Niestety nie zawsze wizja, która powstanie jest optymalnym rozwi zaniem problemu. Programista czerpie satysfakcj nie tylko z działaj cego programu, ale równie z takiego kodu, który jest bardziej ogólnego zastosowania, łatwiejszy do ponownego u ycia i wprowadzania zmian. Jednym z głównych powodów, dla których informatyka szuka dobrych wzorców projektowych jest zapewnienie dobrych i prostych rozwi za dla cz sto wyst puj cych problemów. Termin wzorzec projektowy (ang. design pattern) okre la wygodny sposób ponownego wykorzystania obiektowego kodu w innych projektach i przez innych programistów. Idea wzorców jest prosta: skatalogowa te sposoby interakcji mi dzy obiektami, które b d najbardziej przydatne podczas pisania programów. Wzorce projektowe okre laj sposoby komunikacji mi dzy obiektami, bez wdawania si w szczegóły implementacji innego obiektu. Zachowanie takiego podziału jest cech dobrego programowania obiektowego. W chwili obecnej nie ma jednej ustalonej definicji poj cia wzorca projektowego. Poni ej przytaczamy kilka definicji wzorców projektowych pochodz cych z literatury: Wzorce projektowe stanowi powtarzalne rozwi zanie zagadnie projektowych, z którymi si wci spotykamy. [1] 173

Wzorce projektowe stanowi zbiór reguł okre laj cych jak osi gn pewne cele w dziedzinie programowania. [2] Wzorce projektowe w najwi kszym stopniu dotycz problematyki ponownego u ycia powtarzaj cych si motywów architektury programów, za szkielety aplikacji dotycz szczegółów projektowych i implementacyjnych. [3] Wzorzec adresowany jest do powtarzaj cych si problemów, które pojawiaj si w specyficznych momentach projektowania i stanowi dla nich rozwi zanie. [4] Wzorzec identyfikuje i specyfikuje pewn abstrakcj, której poziom znajduje si powy ej poziomu abstrakcji pojedynczej klasy, instancji lub komponentu. [5] Jednak nale y pami ta, e wzorce projektowe nie dotycz jedynie projektowania samych obiektów, lecz równie interakcji mi dzy nimi. Mo na na nie patrze jak na wzorce w komunikowaniu si obiektów, ale nie jest to spojrzenie pełne, poniewa niektóre wzorce, oprócz sposobów komunikacji, okre laj strategi dziedziczenia i kompozycji, czyli zawieranie si w sobie obiektów. Wzorce nie s wymy lane lub opracowywane s odkrywane. Proces poszukiwania wzorców projektowych jest nazywany eksploracj wzorców. Autorzy ksi ki [5] skatalogowali 23 wzorce projektowe w trzech kategoriach: wzorce konstrukcyjne wykorzystuje si je do pozyskiwania obiektów zamiast bezpo redniego tworzenia instancji klasy, wzorce strukturalne pomagaj ł czy obiekty w wi ksze struktury, maj zastosowanie na przykład w implementacji zło onego interfejsu u ytkownika, wzorce czynno ciowe pomagaj zdefiniowa komunikacj pomi dzy obiektami i kontrolowa przepływ danych w zło onym programie. Proces zdobywania wiedzy na temat wzorców składa si z nast puj cych faz: akceptacja, rozpoznanie i przyswojenie. Najpierw akceptujemy przesłank o tym, e wzorzec jest dla nas wa ny. Nast pnie rozpoznajemy, jakie ma dla nas znaczenie i gdzie mo emy go wykorzysta. W ko cu przyswajamy sobie wszystkie szczegóły dotycz ce go, aby my potrafili za jego pomoc rozwi za jaki problem. 2. WZORCE PROJEKTOWE W JAVA 2ENTERPRISE EDITION Popularnym wzorcem, który bardzo wcze nie pojawił si w literaturze dotycz cej programowania jest model-widok-kontroler, (ang. Model-View-Controler MVC): Data Model (model danych) cz programu odpowiedzialna za przechowywanie i przetwarzanie danych, View (widok) prezentuje interfejs u ytkownika, 174

Controller (kontroler) po redniczy mi dzy u ytkownikiem a widokiem. Zapytania o stan Model - Enkapsulacja stanu - Odpowiada na pytania o stan aplikacji - Udost pnia funkcjonalno aplikacji - Powiadamia widok Zawiadomienie o zmianach Zmiana stanu Widok - Wy wietla model - da uaktualnienia z modelu - Wysyła dania klienta do kontrolera - Pozwala kontrolerowi wybiera widok Wybór wygl du Akcje u ytkownika Kontroler - Definiuje zachowanie aplikacji - Uaktualnia model po akcjach u ytkowników - Wybiera widok w odpowiedzi Wywoływania metod Zdarzenia Rys. 1. Architektura wzorca MVC Katalog wzorców projektowych Java 2 Enterprise Edition Wszystkie prezentowane w tym punkcie wzorce odnosz si do prezentowanej wcze niej ogólnej koncepcji wzorca MVC. Istnieje równie mo liwo korzystania z tych wzorców poza rozwi zaniami bazuj cymi na wzorcu MVC. Ze wzgl du na stał ewolucj prezentowanych wzorców, w nawiasach kwadratowych podano nazwy, pod którymi dany wzorzec jest równie znany w innych publikacjach. Data Access Object (DAO) [Data Access Component] Wzorzec DAO jest stosowany do rozdzielenia logiki biznesowej od logiki dost pu do danych. Umo liwia łatwa wymian zasobów takich jak bazy danych bez konieczno ci modyfikacji logiki biznesowej. Wzorzec warto stosowa w przypadku kiedy mo e dochodzi do cz stych zmian typów zasobów, a zasoby te maj specyficzne funkcj dost pu. Problem ten rozwi zywany jest w J2EE poprzez usuni cie kodu programu zapewniaj cego dost p do zasobów z Enterprise Java Beans (zwane ziarnami) i utworzenie abstrakcyjnego interfejsu dost pu do zasobów. Fast-Lane Reader [Bimodal Data Access] Efektem zastosowania wzorca jest przyspieszanie dost pu do danych w trybie do odczytu poprzez nie u ywanie Enterprise Java Beans. Dzi ki u yciu tego wzorca mo na osi gn wyra ny wzrost wydajno ci przy dost pie do du ych struktur danych. Mo na go stosowa 175

tylko do danych, które nie b d modyfikowane i równocze nie dost p do naj wie szych danych nie jest krytyczn cech systemu. Mechanizm nie zast puje istniej cego sposobu dost pu do danych poprzez komponenty EJB jedynie go uzupełnia. Front Controller [Front Component] Wzorzec słu y do zcentralizowania zarz dzania widokiem nawigacj, szablonami, bezpiecze stwem itp. w aplikacjach Web-owych. Wprowadza on jeden obiekt obsługuj cy wszystkie dania przychodz ce od klienta. W praktyce wiele aplikacji Web-owych składa si z du ej ilo ci powi zanych ze sob stron html. Obsługa takich serwisów jest utrudniona mi dzy innymi ze wzgl du na konieczno dokonywania zmian w wielu plikach po przeniesieniu serwisu w inne miejsce. Dodatkowo zmiana wygl du stron wymaga ich ponownej aran acji. Problemy te mo na zmniejszy korzystaj c z jednego, wspólnego dla wszystkich wywoła klientów kontrolera. Page-by-Page Iterator [Paged List, Value List Handler] Usprawnienie dost pu do du ych list danych poprzez pobranie za jednym razem całej listy. W systemach gdzie nast puje konieczno pobrania du ej listy informacji w celu ich zaprezentowania pomocne jest korzystanie z wzorca Page-byPage Iterator, który umo liwia pobranie całej zawarto ci listy za jednym razem. W wzorcu udost pnione s metody umo liwiaj ce nawigacj po pobranej li cie danych. Session Facade [Session Entity Facade, Distributed Facade] Wzorzec Session Facade dostarcza interfejs przypominaj cy mechanizm workflow do ustawiania stanu ziaren enterprise. Jeden obiekt sesyjny po redniczy w komunikacji z wieloma bean-ami sesyjnymi i encjowymi. Zastosowanie wzorca Session Facade skutecznie obni a ruch w sieci oraz uelastycznia system w przypadku zmian w docelowo wywoływanych bean-ach ich zmiana nie powoduje zmian w obiektach klienta. Value Object [Data Transfer Object, Replicate Object] Wzorzec ten stosowany jest w celu zmniejszenia ruchu w sieci, kiedy w trakcie działania aplikacji nast puje równoczesny odczyt wielu atrybutów bean-a. Informacja zawarta w atrybutach jest przenoszona na stron klienta, co wymiernie podnosi wydajno aplikacji. 176

3. PODSUMOWANIE Korzy ci wynikaj ce z wykorzystywania wzorców projektowych s niepodwa alne. Niestety nie wszyscy programi ci korzystaj z nich w trakcie projektowania i implementacji swoich rozwi za. Podstawowymi przyczynami takiego stanu wydaj si by brak wiedzy na temat wzorców, długotrwały okres pełnego przyswojenia, tak aby móc za jego pomoc rozwi za jaki problem oraz niekiedy niech do odgórnego narzucenia sposobu rozwi zania problemu. W Javie wzorce projektowe mo na spotka na ka dym kroku. Dla przykładu, biblioteka Java Fundation Classes (JFC), która od pewnego czasu jest zawarta w podstawowym API, wykorzystuje kilka popularnych wzorców projektowych. Realizacja graficznego interfejsu u ytkownika z wykorzystaniem biblioteki JFC w pewien sposób pomaga przyswoi wzorce projektowe. W rozwi zaniach J2EE u ywanie wzorców projektowych jest wr cz konieczno ci ze wzgl du na ich zło ono i liczb osób uczestnicz cych w projektach. Z pomoc przychodzi nam w tym przypadku firma Sun, która stara si opracowa i upowszechni jak najwi ksz ilo wzorców projektowych J2EE. LITERATURA [1] Alpert, Sherman, K. Brown, B. Woolf, The Design Patterns Smalltalk Companion, Addison-Wesley Pub Co, 1998 [2] Pree, Wolfgang, Design Patterns for Object-Oriented Software Development, Addison- Wesley Pub Co, 1994 [3] Coplien, Schmidt, Patterns Languages of Program Design, Addison-Wesley Pub Co, 1995 [4] Buschman, Meunier, Pattern Oriented Software Architecture, New York, John Wiley and Sons, 1996 [4] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Pub Co, 1995 177