Wzorce projektowe warstwy danych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wzorce projektowe warstwy danych"

Transkrypt

1 POLITECHNIKA GDAŃSKA WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Architektury Systemów Komputerowych Jarosław Kuchta Instrukcja do laboratorium z przedmiotu Projektowanie Aplikacji Internetowych Wzorce projektowe warstwy danych Gdańsk 2013/14 1

2 Wprowadzenie W ćwiczeniu studenci mają za zadanie napisanie aplikacji internetowej w technologii Web Service lub WCF wykorzystującej jednocześnie trzy wzorce projektowe: Data Access Object Transfer Object Value List Handler 1. Wzorzec Data Access Object Wzorzec Data Access Object wynika ze spostrzeżenia, że dane komponentów biznesowych muszą być przechowywane w pamięci trwałej (masowej). Istnieje wiele typów pamięci trwałej. Dane mogą być przechowywane w zwykłym systemie plików, w repozytorium plików XML, w relacyjnych, obiektowo-relacyjnych i obiektowych bazach danych. Każdy z tych typów pamięci ma swój własny, unikatowy interfejs API. Również w zakresie tego samego typu pamięci (np. relacyjnych baz danych) API zależy od dostawcy określonego produktu zapewniającego przechowywanie danych (np. od producenta systemu bazy danych). Różnice w API powodują, że w przypadku zmiany dostawcy systemu przechowywanie danych zachodzi konieczność modyfikacji komponentów warstwy danych, a czasami również komponentów warstwy biznesowej. Z kolei uniezależnienie aplikacji od systemu przechowywania danych wymaga stworzenia uniwersalnego interfejsu dostępu do danych w pamięci masowej. Taki interfejs określa wzorzec DAO. We wzorcu DAO w warstwie danych występuje komponent (klasa i obiekt) dostępu do danych (komponent DAO) zapewniający jednolity dostęp do różnych źródeł danych. Źródłem danych dla DAO może być: system relacyjnej bazy danych (RDBMS) repozytorium plików XML system wymiany danych (B2B) usługa biznesowa dostępna przez protokół CORBA inny mechanizm przechowywania i udostępniania danych Komponent DAO udostępnia wspólny, uproszczony interfejs dostępu do danych, łączący możliwości różnych źródeł danych i ukrywający przed warstwą biznesową szczegóły implementacyjne dostępu do danych. Ponieważ interfejs DAO nie zmienia się wraz z implementacją źródła danych, więc uniezależnia warstwę biznesową od zastosowanego mechanizmu dostępu do danych. W skład wzorca wchodzą: Business Object obiekt biznesowy, którego dane są przechowywane Data Access Object główny obiekt wzorca, zapewnia transparentny dostęp do źródła danych Data Source źródło danych: baza danych, repozytorium XML etc. 2

3 Transfer Object przenosi dane z warstwy danych do obiektu biznesowego. Obiekt biznesowy (Business Object) wykorzystuje obiekt DAO (Data Access Object) do pozyskania lub utrwalenia danych. Obiekt DAO zawiera w sobie metody wykorzystujące różne źródła danych (Data Source). Źródłem danych może być system relacyjnej bazy danych, repozytorium plików XML itp. Obiekt DAO wystawia taki sam interfejs dla różnych źródeł danych, jednak klasa implementująca interfejs DAO może być zupełnie inna dla każdego typu źródła. Wzorzec DAO często współdziała ze wzorcem Transfer Object tworząc obiekt transferowy przenoszący dane z warstwy danych do obiektu biznesowego. Współdziałanie komponentów wzorca jest następujące: 1: Obiekt biznesowy tworzy instancję obiektu DAO. 2: Obiekt biznesowy wysyła żądanie danych do obiektu DAO. Ten z kolei: 2.1: Pobiera dane ze źródła i 2.2: Tworzy obiekt transferowy zapisując w nim pobrane dane. 2.3: Utworzony obiekt transferowy obiekt DAO zwraca do obiektu biznesowego. 3: Obiekt biznesowy pobiera dane w formie właściwości z obiektu transferowego, jak również może 4: zapisywać w nim dane w formie właściwości. 5: Po ewentualnej modyfikacji obiektu transferowego obiekt biznesowy wysyła do obiektu DAO żądanie zapisania danych. Wówczas obiekt DAO: 5.1: odczytuje z obiektu transferowego dane zmienione 5.2: i nie zmienione 5.3: i zapisuje je w źródle danych. 3

4 1.1. Strategie implementacyjne Strategia implementacji z automatycznym generowaniem kodu DAO Jeśli obiekt biznesowy wykorzystuje tylko jeden obiekt DAO, to jest możliwe utworzenie prostej relacji łączącej obiekt biznesowy, DAO i źródło danych. Można wówczas wykorzystać prosty generator kodu (ze środowiska implementacji) do wygenerowania kodu DAO. Metadane (dane opisujące dane) potrzebne dla tego generatora kodu są podawane przez dewelopera w osobnym pliku deskryptora. Alternatywnie generator kodu może przeprowadzać inspekcję istniejącej bazy danych (odczytywać tablice i ich pola) i tworzyć kod DAO na tej podstawie. W przypadku bardziej złożonego modelu danych warto wykorzystać wyspecjalizowane narzędzia umożliwiające graficzne przedstawienie odwzorowanie obiektów biznesowych w komponenty bazy danych (tablice i kwerendy). Strategia implementacji z fabryką obiektów DAO Bardziej elastyczną implementację wzorca DAO zapewnia zastosowanie wzorców Factory Method i Abstract Factory z GoF. Gdy nie przewiduje się zmiany systemu bazy danych możliwość wykorzystania wzorca Factory Method do tworzenia wielu obiektów DAO, po jednym dla każdej klasy trwałej. Gdy przewiduje się zmiany systemu bazy danych możliwość wykorzystania wzorca Abstract Factory do tworzenia różnych DAO odpowiednich do różnych systemów baz danych. 4

5 Strategia z metodą produkcji (Factory Method) Strategia z zastosowaniem wzorca Factory Method może mieć zastosowanie w przypadku, gdy nie przewiduje się zmiany implementacji źródła danych. Dla tego określonego źródła danych tworzy się fabrykę obiektów DAO (DAOFactory). Fabryka ta implementuje metody tworzące obiekty DAO (DAO_1, DAO_2) dla określonego typu źródła. Każdy z obiektów DAO jest tworzony dla jednej klasy biznesowej i udostępnia interfejs umożliwiający odczytanie i zapisanie właściwości tej klasy (DAO1, DAO2). Strategia z abstrakcyjną fabryką (Abstract Factory) Strategia z zastosowaniem wzorca Abstract Factory ma zastosowanie w przypadku, gdy przewiduje się różne implementacje źródła danych. W tej strategii fabryka obiektów DAO (DAO Factory) jest klasą abstrakcyjną; jej metody tworzenia obiektów DAO również są abstrakcyjne. Są one implementowane w konkretnych fabrykach DAO (XML DAO Factory, RDB DAO Factory, OODB DAO Factory), zapewnianych dla każdego źródła danych. Każdy z obiektów DAO dla tej samej klasy biznesowej implementuje ten sam, wspólny interfejs (klasy XML_DAO1, RDB_DAO1, OODB_DAO1 implementują interfejs DAO1; klasy XML_DAO2, RDB_DAO2, OODB_DAO2 implementują interfejs DAO2). 5

6 1.2. Przykład W przykładzie pokazano zastosowanie wzorca DAO w systemie składania zamówień firmy AnyComp. Klasa biznesowa (Client) uzyskuje dostęp do danych klientów firmy przechowywanych w bazie danych AnyCompDB poprzez obiekt DAO instancję klasy Customer_DAO implementującą interfejs CustomerDAO. Obiekt DAO przekazuje dane klientów przez tworzony obiekt transferowy klasy CustomerData. Dane klas trwałych: Customer, Account i Order są przechowywane w bazie danych. Dla każdej z klas zdefiniowano odpowiedni komponent DAO: Customer_DAO, Account_DAO i Order_DAO. Każdy komponent DAO implementuje własny interfejs. Fabryka DAO (DAO Factory) udostępnia dla klienta metody utworzenia instancji dla każdej z klas DAO. Fabryka DAO jest klasą, która implementuje metody tworzenia obiektów typu DAO dla różnych klas biznesowych. W tym przykładzie trzy metody tworzenia obiektów klasy "Customer_DAO", "Account_DAO" oraz "Order_DAO". Fabryka może mieć też inne metody wykorzystywane w pozostałej części implementacji. 6

7 Interfejs CustomerDAO deklaruje szereg metod dostępu do pamięci trwałej klasy Customer. insertcustomer wstawia do bazy dane nowego klienta; wynikiem jest identyfikator klienta (lub -1 w przypadku błędu) deletecustomer usuwa z bazy dane klienta o podanym identyfikatorze findcustomer wyszukuje w bazie dane klienta o podanym identyfikatorze; wynikiem jest obiekt zawierające dane klienta (w tym identyfikator) updatecustomer aktualizuje w bazie dane klienta W wielu przypadkach klasa trwała jest reprezentowana przez obiekt transferowy klasy CustomerData implementującej zdefiniowany interfejs. Klasa trwała reprezentująca klienta w modelu analitycznym (Customer) jest implementowana przez klasę obiektu transferowego (CustomerData). Do właściwości 7

8 wynikających z analizy dodawana jest właściwość ID przechowująca identyfikator klienta z bazy danych. Przykładowy kod klienta zawiera: 1. utworzenie faktorii DAO 2. utworzenie obiektu DAO 3. znalezienie danych i przekazanie ich przez obiekt transferowy 4. modyfikację danych w obiekcie transferowym po stronie klienta 5. aktualizację danych z obiektu transferowego po stronie serwera 8

9 2. Transfer Object Aplikacje implementują obiekty biznesowe po stronie serwera jako komponenty sesyjne lub komponenty encyjne. Przy tej architekturze komponenty klienckie, które chcą pozyskać dane od obiektów biznesowych, muszą wykorzystywać wiele metod dostępu do danych, wystawianych przez te obiekty za pośrednictwem interfejsów zdalnych. Wiele z tych metod to proste metody dostępu (get i set). Każde wywołanie metody obiektu biznesowego (nawet prostej) przez interfejs zdalny musi być traktowane jako wywołanie zdalne. Wywołania przechodzą przez kolejne warstwy architektury sieciowej niezależnie od tego, czy rzeczywiście są zdalne, czy też są skierowane do serwera lokalnego. Stąd na każde wywołanie nakładany jest duży narzut czasowy związany z wywołaniem poprzez warstwy sieciowe. Klienci najczęściej wymagają więcej niż jednego atrybutu danych dla jednej klasy biznesowej. Dla ich pozyskania muszą wywołać wiele metod. Wraz ze wzrostem liczby wywołań obiektów biznesowych przez ich zdalne interfejsu wydajność aplikacji znacząco maleje. Klienci zazwyczaj częściej potrzebują odczytywać, niż zapisywać dane. Dlatego zapewnienie wydajnego sposobu odczytywania danych zdalnych jest ważniejsze od wydajności zapisu danych. Rozwiązaniem tych problemów jest wzorzec Transfer Object, w którym dane dla komponentów warstw wyższych przekazuje się w postaci obiektowej. Instancja obiektu transferowego jest tworzona na żądanie klienta przez komponent serwerowy, atrybuty obiektu są wypełniane odpowiednimi danymi i obiekt w całości jest przesyłany do klienta. Klient odczytuje poszczególne dane (właściwości) z instancji obiektu transferowego po swojej stronie. Ponieważ do odczytania właściwości po stronie klienta nie potrzebny jest interfejs zdalny, więc tylko pojedyncze wywołanie interfejsu zdalnego jest potrzebne do przesłania całego pakietu danych. W skład wzorca Transfer Object wchodzą następujące komponenty: Client jest to klient komponentu biznesowego; może być to aplikacja użytkownika końcowego (w przypadku architektury z grubym klientem pozyskującym dane bezpośrednio z komponentów biznesowych), delegat biznesowy (p. wzorzec Business Delegate) albo inny obiekt biznesowy. Business Object obiekt biznesowy tworzy obiekt transferowy i zwraca na żądanie klienta; może być zaimplementowany jako: o Business Entity komponent encyjny o Business Session komponent sesyjny o Data Access Object komponent danych Transfer Object obiekt transferowy przenoszący dane dla klienta. Może to być instancja dowolnej serializowalnej klasy Javy. Klasa ta powinna mieć konstruktor określający, jakie dane są wymagalne dla utworzenia obiektu transferowego. Zazwyczaj pola obiektu są definiowane jako publiczne, dzięki 9

10 czemu nie potrzebne są metody dostępu. Jeśli obiekt transferowy ma być wykorzystywany również do zapisu danych i ma chronić niektóre pola, to potrzeba zadeklarować metody dostępu do odczytu wszystkich pól i ewentualnie do zapisu niektórych z nich. Współdziałanie komponentów jest następujące: 1. Klient wysyła do komponentu biznesowego żądanie pobrania danych. W odpowiedzi na to żądanie: 1.1. Komponent biznesowy tworzy instancję obiektu transferowego i wypełnia ją danymi. Instancja ta będzie przechowywana po stronie serwera i służyć do przyspieszenia obsługi kolejnych żądań Instancję obiektu transferowego komponent biznesowy zwraca do klienta Klient tworzy własną kopię obiektu transferowego, którą wykorzystuje do lokalnych operacji. 2 oraz 3. Klient pobiera poszczególne właściwości ze swojej kopii lokalnej. 10

11 2.1. Strategie implementacyjne W implementacji wzorca Transfer Object stosuje się cztery strategie: strategię z modyfikowalnym obiektem transferowym wówczas, gdy klient modyfikuje dane przekazywane przez obiekt transferowy strategię z wieloma obiektami transferowymi wówczas, gdy warstwa biznesowa jest mocno złożona strategię z rozszerzaniem obiektu transferowego przez komponent encyjny wówczas, gdy klient potrzebuje wszystkich danych komponentu encyjnego strategię z faktorią obiektów transferowych Pierwsze dwie strategie są stosowane wówczas, gdy obiekt biznesowy jest implementowany jako komponent sesyjny lub komponent encyjny. Pozostałe dwie tylko wtedy, gdy obiekt biznesowy jest implementowany jako komponent encyjny. Modyfikowalny obiekt transferowy W strategii z modyfikowalnym obiektem transferowym obiekt ten nie tylko przenosi dane z obiektu biznesowego do klienta, ale również zmiany dokonywane przez klienta z powrotem do obiektu biznesowego. Obiekt transferowy musi zapewniać metody modyfikacji danych. Metody te mogą zapewniać walidację wprowadzanych danych i spójność zawartości pól. Zmiany są dokonywane na lokalnej kopii obiektu transferowego. Zmiany te nie są widoczne dla obiektu biznesowego do czasu, gdy klient wywołuje metodę setdata() obiektu biznesowego. Wywołanie tej metody powoduje serializację lokalnej kopii obiektu transferowego i przesłanie jej do obiektu biznesowego. Obiekt biznesowy przyjmuje zmodyfikowaną kopię obiektu transferowego i złącza zmienione dane z danymi we własnej kopii. Operacja złączenia może komplikować projekt obiektu biznesowego i obiektu transferowego. Rozwiązanie praktyczne może polegać na aktualizacji tylko zmienionych danych. Zamiast porównywać kolejno właściwości obiektu transferowego z kopii serwerowej i kopii przesłanej od klienta można zastosować zbiór flag sygnalizujących, które właściwości zostały zmienione. Problemem projektowym pozostaje zapewnienie: odpowiedniej propagacji zmian do innych klientów, synchronizacja zmian dokonywanych przez różnych klientów, kontrola wersji danych 2.2. Przykład - modyfikowalny obiekt transferowy z flagami modyfikacji W przypadku, gdy obiekt transferowy jest modyfikowany przez klienta, wskazane jest zastosowanie flag zmian (ismodified). Wówczas metoda ustalenia (np. setfirstname) ustawia odpowiednią flagę (ale tylko wtedy, gdy klient rzeczywiście zmienia wartość pola). Wszystkie flagi powinny być skasowane (metoda clearismodified) wówczas, gdy dane zostaną zaktualizowane przez obiekt DAO. 11

12 3. Value List Handler Wzorzec Value List Handler ma zastosowanie w przypadku, gdy klient przegląda listę wartości (np. wyszukane strony w wyszukiwarce), a nie potrzebuje dla każdej wartości mieć cały obiekt zdalny. Niepraktyczne byłoby zwracanie całego zbioru wyszukanych rekordów. Lepiej jest przechować listę wyszukanych rekordów po stronie serwera i 12

13 podawać klientowi po kilka rekordów. Jeśli wielu klientów wyszukuje podobne dane, to przechowywana lista rekordów może być wielokrotnie wykorzystana. Klient może określać, po ile rekordów chce otrzymywać, oraz może poruszać się po przechowywanej liście zarówno w przód, jak i w tył. Lista wyników wyszukiwania może być przechowywana zgodnie ze wzorcem Value List Handler. Serwer może udostępniać przechowywane wyniki klientowi zgodnie z jego wymaganiami co do rozmiaru porcji rekordów i sposobu nawigacji. Główny komponent wzorca Value List Handler powinien implementować metody nawigacji po liście zdefiniowane w interfejsie Value List Iterator: getsize() podającą rozmiar listy getcurrentelement() podającą bieżący element z list w postaci obiektu transferowego getnextelements(int howmany) podają pewną ilość kolejnych elementów (obiektów transferowych) z listy getpreviouselements(int howmany) podają pewną ilość elementów (obiektów transferowych) z listy poprzedzających bieżący element resetindex() ustawiającą indeks bieżącego elementu na początek listy 3.1. Strategie implementacji W implementacji stosuje się dwie strategie: Implementacja przez zwykły obiekt - przydatna jedynie dla prostszych aplikacji Implementacja jako stanowy komponent sesji pełniący rolę fasady Kod implementacji wzorca przez zwykłą klasę może być następujący: 13

14 public class ValueListHandler implements ValueListIterator { protected List list; protected ListIterator listiterator; public ValueListHandler() { } protected void setlist(list list) { this.list = list; listiterator = list.listiterator(); } public Collection getlist() { return list; } public int getsize() { return list.size(); } public Object getcurrentelement() { int currindex = listiterator.nextindex(); return list.get(currindex); } public List getpreviouselements(int count) { int i = 0; Object object = null; LinkedList list = new LinkedList(); while (listiterator.hasprevious() && (i < count)){ object = listiterator.previous(); list.add(object); i++; } return list; } public List getnextelements(int count) { int i = 0; Object object = null; LinkedList list = new LinkedList(); while (listiterator.hasnext() && (i < count) ){ object = listiterator.next(); list.add(object); i++; } return list; } public void resetindex() { listiterator = list.listiterator(); }... } 14

15 4. Zadanie dla studentów Zaprogramować w środowisku Visual Studio albo J2EE aplikację rozproszoną składającą się z części serwerowej i części klienckiej. W części serwerowej zrealizować dwie warstwy: warstwę danych i warstwę usługową. W warstwie danych zaimplementować wzorzec DAO czytający dane z kolekcji danych zdefiniowanej w pamięci operacyjnej i zapisujący je w pliku na dysku twardym (bez bazy danych). Kolekcja powinna zawierać przynajmniej 30 rekordów danych. Format zapisu ma być czytelny dla człowieka (np. XML, JSON). W warstwie usługowej zaimplementować wzorzec Value List Handler buforujący dane pobrane z obiektu DAO i przekazujące je do części klienckiej w partiach po 10. Każdy rekord danych jest przekazywany w formie obiektu transferowego (Transfer Object). Aplikacja kliencka pobiera dane z warstwy usługowej przez interfejs Web Service. Dane prezentuje partiami dla użytkownika. Umożliwia przechodzenie do następnej lub poprzedniej partii danych. Aplikacja kliencka umożliwia użytkownikowi modyfikację wybranego rekordu danych i poprzez Web Service zmodyfikowanie pierwotnej kolekcji danych z zapisem jej w pliku. Bibliografia Rysunki i przykłady pochodzą z następujących źródeł: Literatura uzupełniająca: Gamma et al: Wzorce projektowe, WNT Warszawa Buschman et al: Pattern-Oriented Software Architecture Volume 1: A System of Patterns, Wyd. Wiley, Schmidt et al: Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects, Wyd. Wiley, 15

Projektowanie Aplikacji Rozproszonych Jarosław Kuchta. Wzorce projektowe warstwy danych

Projektowanie Aplikacji Rozproszonych Jarosław Kuchta. Wzorce projektowe warstwy danych Rozproszonych Jarosław Kuchta Wzorce projektowe warstwy danych Wzorce projektowe Core J2EE Patterns (podział umowny) Warstwy danych: Data Access Object, Transfer Object, Value List Handler Warstwy biznesowej:

Bardziej szczegółowo

Projektowanie Aplikacji Internetowych Jarosław Kuchta. Wzorce projektowe warstwy biznesowej

Projektowanie Aplikacji Internetowych Jarosław Kuchta. Wzorce projektowe warstwy biznesowej Jarosław Kuchta Wzorce projektowe warstwy biznesowej Wzorce projektowe dotyczące danych, obiektów i logiki biznesowej Transfer Object Assembler Łączy dane pochodzące z różnych komponentów biznesowych Composite

Bardziej szczegółowo

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

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług

Projektowanie Aplikacji Internetowych. Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Wzorce projektowe warstwy usług Service Locator Ułatwia wyszukanie komponentów usługowych Service Activator Umożliwia asynchroniczne przesyłanie żądań do komponentów biznesowych

Bardziej szczegółowo

"Biznesowe" wzorce projektowe

Biznesowe wzorce projektowe POLITECHNIKA GDAŃSKA WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Architektury Systemów Komputerowych Jarosław Kuchta Instrukcja do laboratorium z przedmiotu Projektowanie Aplikacji Internetowych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne

Bardziej szczegółowo

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie architektury systemu rozproszonego Jarosław Kuchta Zagadnienia Typy architektury systemu Rozproszone przetwarzanie obiektowe Problemy globalizacji Problemy ochrony Projektowanie architektury

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35 Wzorce projektowe cz. II Wzorce projektowe cz. II 1/35 Wzorce projektowe cz. II 2/35 Iterator Przeznaczenie Wzorzec zapewnia sekwencyjny dostęp do elementów obiektu zagregowanego bez ujawniania jego reprezentacji

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo

Zagadnienia projektowania aplikacji J2EE

Zagadnienia projektowania aplikacji J2EE 211 Zagadnienia projektowania aplikacji J2EE Maciej Zakrzewicz Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ Plan rozdziału 212 Wstęp Techniki projektowe: Wprowadzenie modułu

Bardziej szczegółowo

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe

Projektowanie obiektowe Wzorce projektowe Projektowanie obiektowe Wzorce projektowe Gang of Four Kreacyjne wzorce projektowe (wzorce konstrukcyjne) 1 Roadmap Memento Factory Method Abstract Factory Prototype Builder 2 Wzorce konstrukcyjne wzorce

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Wzorce projektowe Wzorzec projektowy (ang. design pattern) w inżynierii oprogramowania, rozwiązanie często pojawiających się, powtarzalnych problemów projektowych.

Bardziej szczegółowo

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

problem w określonym kontekście siły istotę jego rozwiązania Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego

Bardziej szczegółowo

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Repository dodatkowa warstwa abstrakcji na obiektową warstwę dostępu do danych.

Bardziej szczegółowo

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie warstwy danych Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja relacyjnej

Bardziej szczegółowo

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych Spis treści Wprowadzenie... ix Organizacja ksiąŝki... ix Od czego zacząć?... x Konwencje przyjęte w ksiąŝce... x Wymagania systemowe... xi Przykłady kodu... xii Konfiguracja SQL Server 2005 Express Edition...

Bardziej szczegółowo

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

76.Struktura oprogramowania rozproszonego.

76.Struktura oprogramowania rozproszonego. 76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie

Bardziej szczegółowo

Projektowanie logiki aplikacji

Projektowanie logiki aplikacji Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie logiki aplikacji Zagadnienia Rozproszone przetwarzanie obiektowe (DOC) Model klas w projektowaniu logiki aplikacji Klasy encyjne a klasy

Bardziej szczegółowo

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans 1. Wprowadzenie. 2. Przegląd komponentów EJB. komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 3. Kontener komponentów EJB: JBoss. 1 Enterprise JavaBeans

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Wzorce dystrybucji i wspólbieżności autonomicznej

Wzorce dystrybucji i wspólbieżności autonomicznej Wzorce dystrybucji i wspólbieżności autonomicznej 1. Wzorce dystrybucji, fasada zdalna (Remote Facade), obiekt transfery danych (Data Transfer Object), 2. Wzorce współbieżności autonomicznej, blokada optymistyczna

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Wypożyczalnia VIDEO. Technologie obiektowe

Wypożyczalnia VIDEO. Technologie obiektowe Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Programowanie komponentowe 5

Programowanie komponentowe 5 Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf

Bardziej szczegółowo

Builder (budowniczy) Cel: Przykład:

Builder (budowniczy) Cel: Przykład: 1/8 Builder (budowniczy) Cel: Oddzielenie konstruowania złożonego obiektu od jego reprezentacji, tak aby ten sam proces konstrukcji mógł tworzyć różne reprezentacje. Przykład: 2/8 abstract class TableBuilder

Bardziej szczegółowo

Projektowanie struktury danych

Projektowanie struktury danych Jarosław aw Kuchta Rozproszonych Projektowanie qhta@eti.pg.gda.pl J.Kuchta@eti.pg.gda.pl Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja relacyjnej

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Szczególne problemy projektowania aplikacji Jarosław Kuchta Miejsce projektowania w cyklu wytwarzania aplikacji SWS Analiza systemowa Analiza statyczna Analiza funkcjonalna Analiza dynamiczna Analiza behawioralna

Bardziej szczegółowo

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych Plan prezentacji Budowa aplikacji w technologii Enterprise JavaBeans Przegląd architektur aplikacji rozproszonych: CORBA,, Wprowadzenie do Enterprise JavaBeans () Budowa komponentów sesyjnych Budowa komponentów

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów A Zasady współpracy Ocena rozwiązań 3.0 25 40 punktów 3.5 41 65 punktów 4.0 66 80 punktów 4.5 81 100 punktów 5.0 101 130 punktów Warunki zaliczenia przedmiotu Student uzyska ocenę zaliczającą (3.0) o ile

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Aplikacje RMI Lab4

Aplikacje RMI   Lab4 Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych

Bardziej szczegółowo

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób? Problemy projektowania obiektowego Czy podobne problemy można rozwiązywac w podobny sposób? Czy te problemy można przedstawić w abstrakcyjny sposób, tak aby były pomocne w tworzeniu rozwiązań w różnych

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie

Bardziej szczegółowo

Zaawansowane programowanie obiektowe - wykład 5

Zaawansowane programowanie obiektowe - wykład 5 Zaawansowane programowanie obiektowe - wykład 5 dr Piotr Jastrzębski (czynnościowe) opisują zachowanie obiektów, komunikację pomiędzy nimi i ich odpowiedzialność. Interpreter Iterator (kursor) Łańcuch

Bardziej szczegółowo

Szablony klas, zastosowanie szablonów w programach

Szablony klas, zastosowanie szablonów w programach Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

Projektowanie warstwy danych

Projektowanie warstwy danych Jarosław Kuchta Internetowych Projektowanie warstwy danych qhta@eti.pg.gda.pl J.Kuchta@eti.pg.gda.pl Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG Budowa aplikacji w technologii Enterprise JavaBeans Maciej Zakrzewicz PLOUG Plan prezentacji Przegląd architektur aplikacji rozproszonych: CORBA, SOAP, EJB Wprowadzenie do Enterprise JavaBeans (EJB) Budowa

Bardziej szczegółowo

Programowanie zespołowe

Programowanie zespołowe Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 6 Programowanie zespołowe Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Programowanie zespołowe Wymagania wstępne

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

Bardziej szczegółowo

Pojęcie bazy danych. Funkcje i możliwości.

Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór

Bardziej szczegółowo

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design Projektowanie Zorientowane na Dziedzinę ang. Domain Driven Design 2 Projektowanie Stan posiadania Przypadki użycia Model dziedziny Operacje systemowe Kontrakty dla operacji systemowych Problemy do rozwiązania

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

EJB 3.0 (Enterprise JavaBeans 3.0)

EJB 3.0 (Enterprise JavaBeans 3.0) EJB 3.0 (Enterprise JavaBeans 3.0) Adrian Dudek Wirtualne Przedsiębiorstwo 2 Wrocław, 1 czerwca 2010 Plan prezentacji 1 Wprowadzenie Cel prezentacji Czym jest EJB 3.0? Historia 2 3 Cel prezentacji Wprowadzenie

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Algorytmy i Struktury Danych. Anna Paszyńska

Algorytmy i Struktury Danych. Anna Paszyńska Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;

Bardziej szczegółowo

Pojęcie systemu baz danych

Pojęcie systemu baz danych Pojęcie systemu baz danych System baz danych- skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki. Składa się z zasadniczych elementów: 1) Danych 2) Sprzętu 3) Programów 4)

Bardziej szczegółowo

Podstawowe zagadnienia z zakresu baz danych

Podstawowe zagadnienia z zakresu baz danych Podstawowe zagadnienia z zakresu baz danych Jednym z najważniejszych współczesnych zastosowań komputerów we wszelkich dziedzinach życia jest gromadzenie, wyszukiwanie i udostępnianie informacji. Specjalizowane

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Relacyjne, a obiektowe bazy danych. Bazy rozproszone

Relacyjne, a obiektowe bazy danych. Bazy rozproszone 2 Relacyjne, a obiektowe bazy danych. Bazy rozproszone Zastosowania baz danych systemy bankowe (bankomat) systemy masowej obsługi (hipermarket) rezerwacja biletów lotniczych telefonia komórkowa (sms) Dziekanat

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1)

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1) Analiza i projektowanie obiektowe 2016/2017 Wykład 11: Zaawansowane wzorce projektowe (1) Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Wzorce projektowe

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 26.05.2014 WYKŁAD 13 Refleksja Data Access Object

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

Bardziej szczegółowo

Prototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp.

Prototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp. 1/14 Prototype (prototyp) Cel: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp. Przykład: Edytor 3D klient tworzy obiekty różnych kształtów

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie

Bardziej szczegółowo

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

Tworzenie warstwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP

Tworzenie warstwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP Tworzenie warstwy prezentacji w wielowarstwowej aplikacji Przykład w środowisku Visual Web JSP Autor Zofia Kruczkiewicz Programowanie i wdrażanie systemów informatycznych 1. Wykonanie formularzy typy JSP

Bardziej szczegółowo

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat EL - Expression Language Załóżmy, że mamy klasę Pracownik, której atrybutem jest PESEL. Załóżmy dalej, że w atrybucie sesji zalogowany przechowujemy obiekt aktualnie zalogowanego

Bardziej szczegółowo

Tworzenie warstwy prezentacji drugi etap Przykład z laboratorium5_6. Autor Zofia Kruczkiewicz Wzorce oprogramowania laboratorium7_8

Tworzenie warstwy prezentacji drugi etap Przykład z laboratorium5_6. Autor Zofia Kruczkiewicz Wzorce oprogramowania laboratorium7_8 Tworzenie warstwy prezentacji drugi etap Przykład z laboratorium5_6 Autor Zofia Kruczkiewicz Wzorce oprogramowania laboratorium7_8 1. Wykonanie formularzy typy JSP zawierających wieloużywalne formularze

Bardziej szczegółowo

Kurs programowania aplikacji bazodanowych

Kurs programowania aplikacji bazodanowych Wykład 5 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do XPO Podstawowe obiekty Utrwalanie obiektów Transakcje i współbieżność Wzorzec unit of work Odwzorowanie dziedziczenia Asocjacje

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017 Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017 1 Wzorce podstawowe 1.1 Interface vs Abstract class class InterfaceAbstractClass

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo