Wypożyczalnia VIDEO. Technologie obiektowe

Podobne dokumenty
Wzorce projektowe. dr inż. Marcin Pietroo

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

Testowanie oprogramowania Wzorce projektowe

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce projektowe. dr inż. Marcin Pietroo

Zaawansowane programowanie w C++ (PCP)

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)

Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

1) Wzorzec projektowy Adapter. Zastosowanie:

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Programowanie obiektowe

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności

Programowanie obiektowe

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

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Programowanie obiektowe

Wzorce projektowe. dr inż. Marcin Pietroo

Projektowanie obiektowe Wzorce projektowe

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

Zaawansowane programowanie obiektowe - wykład 5

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Programowanie obiektowe

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Komunikacja i wymiana danych

Programowanie obiektowe - 1.

Design Pattern Density Defined

Wywoływanie metod zdalnych

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

OBSŁUGA ZDARZEO, ALARMÓW, NASTAW I FUNKCJI KONTROLNYCH W PROGRAMIE OBSŁUGI INTERFEJSU 61850

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie obiektowe

Programowanie Komponentowe WebAPI

76.Struktura oprogramowania rozproszonego.

Programowanie usług działających w tle

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

Bazy danych 2. Wykład 1

Analiza i projektowanie aplikacji Java

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

Język programowania. Andrzej Bobyk

Technologie obiektowe

Programowanie współbieżne i rozproszone

MVVM Light Toolkit. Julita Borkowska

Programowanie obiektowe

Wzorce projektowe. Wstęp

Programowanie obiektowe

Interfejsy i klasy wewnętrzne

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Wprowadzenie. Dariusz Wawrzyniak 1

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

Technologie COM i ActiveX COM - Component Object Model

Wzorce projektowe cz. I

REFERAT O PRACY DYPLOMOWEJ

Aplikacje RMI

Wywoływanie metod zdalnych

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

Technologia Programowania 2016/2017 Wykład 4

Decorator (dekorator)

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

1 Wprowadzenie do J2EE

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

Architektura składnikowa a architektura klient serwer. Programowanie składnikowe. Programowanie składnikowe w modelu COM

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Przesyłania danych przez protokół TCP/IP

Jak korzystać z Nadaj Przesyłkę. I. Informacje podstawowe

Middleware wprowadzenie października 2010

Jak korzystać z Nadaj Przesyłkę. I. Informacje podstawowe

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Serwery Statefull i Stateless

WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator

Historia modeli programowania

Wprowadzenie do systemów informacyjnych

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Kurs WWW. Paweł Rajba.

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

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Tworzenie i wykorzystanie usług sieciowych

Wprowadzenie do programowania aplikacji mobilnych

Kolejkowanie wiadomości Standard MQ (JMS)

Jak korzystać z Nadaj Przesyłkę

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Java Developers Day. Implementacja ESB przy użyciu Mule. ESB Mule Obsługa zamówień DEMO

Projektowanie i implementacja infrastruktury serwerów

Builder (budowniczy) Cel: Przykład:

Technologia Programowania 2016/2017 Wykład 5

Posiada (TAK / NIE. Zrzut ekranu. Opis funkcji

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Transkrypt:

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 stałego klienta Opłaty za wypożyczenie zależą od tego na jak długo film jest wypożyczony oraz od rodzaju filmu (normalne, dziecięce, nowości) każdy rodzaj ma swoją cenę. Punkty stałego klienta zależą od tego czy film jest nowością. Za wypożyczenie normalnego filmu klient otrzymuje 1 punkt/1 dzień, za nowości 2 punkty/1 dzień. Zaprojektuj i zaimplementuj system, który zrealizuje powyższe cele oraz umożliwi: tworzenie klientów, tworzenie filmów, tworzenie wypożyczeń oraz wydruk potwierdzenia określającego: tytuł, długość wypożyczenia, rodzaj filmu, kwota, podsumowanie kwoty, oraz podsumowanie liczby punktów stałego klienta.

VIDEO - modyfikacje Modyfikacja 1 Potwierdzenie powinno być drukowane w formie standardowej lub w formie HTML. Modyfikacja 2 Nowy rodzaj filmu western z inną ceną za wypożyczenie. Modyfikacja 3 Zmiana sposobu naliczania punktów stałego klienta. Za 1 dzień 5 punktów, za następne 1. Jeżeli nowość całość x2.

Video

Filmy - polimorfizm

Filmy - wzorzec

Filmy, punkty

Potwierdzenie - strategia

Potwierdzenie - template

Cel - problem Stworzenie relacji jeden do wielu pomiędzy obiektami Zmiana stanu obiektu po stronie jeden umożliwi automatyczne powiadomienie o niej wszystkich zainteresowanych obiektów

Wzorzec - obserwator Wzorzec składa się z dwóch ról obiektu obserwowanego (Subject) i obiektów obserwujących (Observer). Obiekt Subject posiada metody pozwalające na podłączanie i odłączanie obserwatorów Każdy zainteresowany obiekt może się zarejestrować jako obserwator Subject posiada metodę, służącą do powiadamiania wszystkich zarejestrowanych obserwatorów. Każdy obserwator ma zaimplementowaną metodę wykorzystywaną do powiadamiania obiektów o zmianie stanu obiektu obserwowanego.

Observer

Observer - uczestnicy Subject - utrzymuje rejestr obiektów Observer - umożliwia dołączanie i odłączanie obiektów Observer Observer - udostępnia interfejs do powiadamiania o zmianach Concrete subject - przechowuje stan istotny dla obiektów Concrete Observer - powiadamia obiekty Concrete Observer Concerete observer - aktualizuje swój stan na podstawie powiadomienia

Observer Luźniejsze powiązania pomiędzy obiektami - obiekt Subject komunikuje się z innymi obiektami przez interfejs Observer - obiekty Subject i Observers mogą należeć do różnych warstw abstrakcji Programowe rozgłaszanie komunikatów Spójność stanu pomiędzy obiektami Subject i Observers

Observer - skalowalność push: Observers otrzymują kompletny stan obiektu Subject - parametr metody Update() pełna informacja o stanie obiektu Subject pull: Observers otrzymują powiadomienie i referencję do obiektu Subject - tylko referencja do obiektu Subject, dzieki której mogą następnie odpytać go o szczegóły dotyczące zmiany. - ten model jest znacznie bardziej skalowalny, szczególnie w przypadku wywoływania w środowisku rozproszonym

Observer przykład Totolotek

Adapter Umożliwienie współpracy obiektów o niezgodnych typach Szczególnie istotną rolę odgrywa przy korzystaniu z gotowych bibliotek o interfejsach niezgodnych ze stosowanymi w aplikacji

Adapter Struktura wzorca składa się z trzech podstawowych klas: Target, Apaptee, Adapter. Target - interfejs oczekiwany przez klienta Adaptee - obiekt dostarczający żądanej funkcjonalności, ale niezgodny Adapter - implementuje typ Target i tłumaczy wywołania metody należącej do typu Target poprzez wykonanie innej metody (grupy metod) w klasie Adaptee

Adapater Duża elastyczność - pojedynczy adapter może współpracować z wieloma obiektami Adaptee naraz - Adapter może dodawać funkcjonalność do Adaptee Kompozycja i dziedziczenie jako mechanizmy adaptacji.

Adapter - kompozycja

Adapter - dziedziczenie

Composite Organizowanie obiektów w struktury drzewiaste reprezentujące relacje całość-część Jednolita obsługa pojedynczych obiektów i złożonych struktur

Composite Centralnym elementem wzorca jest interfejs Component, który reprezentuje dowolny obiekt w strukturze drzewiastej. Posiada on możliwość dodawania i usuwania swego obiektu potomnego (także typu Component) oraz odwołania się do wybranego potomka. Zawiera także metodę Operation(), którą należy wykonać na każdym węźle struktury. Interfejs komponent posiada dwie implementacje Leaf i Composite. Leaf obiekty bez potomków Composite dowolny węzeł pośredni.

Composite Każdy węzeł pośredni zarządza swoim poddrzewem, którego jest korzeniem, dlatego metoda operation, poza wywołanie operacji specyficznych dla danego węzła, wywołuje swoje odpowiedniki w obiektach potomnych. Z punktu widzenia klienta taka struktura umożliwa zarządzanie całością za pomocą jednego obiektu. Niepotrzebna jest wiedza o rozmiarze drzewa, ponieważ wywołanie zostanie automatycznie przekazane do wszystkich jego elementów.

Composite - elementy Component - deklaruje wspólny interfejs dla obiektów znajdujących się w strukturze - implementuje wspólną funkcjonalność wszystkich obiektów Leaf - reprezentuje węzeł bez potomków Composite - reprezentuje węzeł z potomkami - przechowuje referencje do potomków - deleguje otrzymane polecenia do potomków

Composite

Cel Zastąpienie obiektu docelowego tymczasowym substytutem, który może pełnić trzy funkcje: - odsunie w czasie moment utworzenia obiektu - będzie kontrolował do niego dostępm - pozwoli odwoływać się do obiektu zdalnego. Z punktu widzenia klienta substytut powinien być przezroczysty i nie może mieć wpływu na sposób interakcji z obiektem docelowym

Proxy

Proxy Interfejs Subject posiada wiele implementacji. Jedna z implementacji RealSubject obiekt docelowy posiadający funkcjonalność oczekiwaną przez klienta. Druga obiekt proxy klient zamiast do obiektu docelowego, odwołuje się do obiektu Proxy, który deleguje żądanie do niego, lub próbuje je obsługiwać

Proxy - rodzaje Zdalny obiekt Proxy (remote proxy) jest lokalnym reprezentantem obiektu znajdującego się w innej przestrzeni adresowej. Proxy przejmuje odpowiedzialność za zdalne wywołania metod poprzez sieć, serializację parametrów i odebranie wyników. Stosowany w większości środowisk przetwarzania rozproszonego (Corba, WCF) Wirtualny obiekt Proxy pełni rolę zamiennika dla obiektu o dużych wymaganiach systemowych (np. dużo pamięci) Obiekt proxy obsługuje wszystkie zadania obiektu RealSubject, które nie wymagają odwołań do tego obszaru pamięci Ochronny obiekt Proxy udostępnia obiekt RealSubject tylko uprawnionym obiektom. Zajmuje się zabezpieczeniem dostępu do obiektu RealSubject. RealSubject nigdu nie jest bezpośrednio dostępny dla klientów w ich imieniu występuje Proxy. Technologie obiektowe