Zaawansowane programowanie obiektowe - wykład 5

Podobne dokumenty
Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo

Wprowadzenie do programowania aplikacji mobilnych

Wzorce projektowe Michał Węgorek

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

Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym

Zaawansowane programowanie w C++ (PCP)

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

1) Interpreter. Idea. Struktura. Uczestnicy

Programowanie obiektowe

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Programowanie obiektowe

Programowanie obiektowe

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

Technologie obiektowe

Projektowanie obiektowe Wzorce projektowe

Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:

Programowanie obiektowe

Historia modeli programowania

Programowanie zorientowane obiektowo. Mateusz Kołecki

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

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

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

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

Funkcje i instrukcje języka JavaScript

Testowanie oprogramowania Wzorce projektowe

Template method (metoda szablonowa)

Wprowadzenie niektórych zagadnień OOP oraz wzorce operacyjne

Wypożyczalnia VIDEO. Technologie obiektowe

Projektowanie oprogramowania: wzorce architektoniczne i projektowe

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

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

Język Java część 2 (przykładowa aplikacja)

Programowanie obiektowe - 1.

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

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

Technologia Programowania 2016/2017 Wykład 5

Wykład 9: Polimorfizm i klasy wirtualne

Podstawy Programowania Obiektowego

Klasy abstrakcyjne i interfejsy

Programowanie obiektowe

Programowanie obiektowe

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Diagramy klas. dr Jarosław Skaruz

Wykład 9: Metody wirtualne i polimorfizm

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Wzorce projektowe i refaktoryzacja

Wykład 8: klasy cz. 4

Szablony funkcji i szablony klas

PRZEWODNIK PO PRZEDMIOCIE

Command (action, transaction, polecenie)

Wzorce projektowe. dr inż. Marcin Pietroo

Builder (budowniczy) Cel: Przykład:

Wprowadzenie do szablonów szablony funkcji

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

Wprowadzenie do szablonów szablony funkcji

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Zaawansowane programowanie w C++ (PCP)

Język C++ Programowanie obiektowe


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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Język Java część 2 (przykładowa aplikacja)

Wzorce projektowe. Wstęp

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

Aplikacje w środowisku Java

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Technologia Programowania 2016/2017 Wykład 4

Wykład Ćwiczenia Laboratorium Projekt Seminarium

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

Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018

Smarty PHP. Leksykon kieszonkowy

WYKŁAD 11. Wzorce projektowe czynnociowe Iterator TemplateMethod

Rok akademicki: 2012/2013 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

Klasy abstrakcyjne, interfejsy i polimorfizm

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Typy danych, cd. Łańcuchy znaków

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Dziedziczenie jednobazowe, poliformizm

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Paradygmaty programowania

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Konstruktor kopiujacy

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

TEMAT : KLASY DZIEDZICZENIE

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Programowanie obiektowe

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

Programowanie obiektowe 1 - opis przedmiotu

Wprowadzenie do programowania

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Transkrypt:

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 zobowiązań Mediator Metoda szablonowa Obserwator Odwiedzający (wizytator) Pamiątka (znacznik) Polecenie Stan Strategia (polityka)

Interpreter Interpreter czynnościowy wzorzec projektowy, którego celem jest zdefiniowanie opisu gramatyki pewnego języka interpretowalnego, a także stworzenie dla niej interpretera, dzięki któremu będzie możliwe rozwiązanie opisanego problemu.

Rysunek 1:

Zastosowania: interpretacja języka kompilatory odwrotna notacja polska,...

Iterator (kursor) Iterator czynnościowy wzorzec projektowy (obiektowy), którego celem jest zapewnienie sekwencyjnego dostępu do podobiektów zgrupowanych w większym obiekcie.

Rysunek 2:

Zastosowania: przetwarzanie zróżnicowanych kolekcji, aplikacje, w których dane są przechowywane w kolekcjach różnych typów.

Łańcuch zobowiązań Łańcuch zobowiązań - czynnościowy wzorzec projektowy, w którym żądanie może być przetwarzane przez różne obiekty, w zależności od jego typu. public void operacja(żądanie: Żądanie) { jeśli potrafimy obsłużyć dany typ żądania żądanie: obsłuż żądanie w przeciwnym wypadku: przekaż żądanie następnikowi }

Rysunek 3:

Zastosowanie: Zalety: Wady: Wzorzec znajduje zastosowanie wszędzie tam, gdzie mamy do czynienia z różnymi mechanizmami podobnych żądań, które można zaklasyfikować do różnych kategorii. Dodatkową motywacją do jego użycia są często zmieniające się wymagania. elementy łańcucha mogą być dynamicznie dodawane i usuwane w trakcie działania programu, zmniejszenie liczby zależności między nadawcą a odbiorcami, implementacja pojedynczej procedury nie musi znać struktury łańcucha oraz innych procedur. wzorzec nie gwarantuje, że każde żądanie zostanie obsłużone, śledzenie i debugowanie pracy działania łańcucha może być trudne.

Mediator Mediator wzorzec projektowy należący do grupy wzorców czynnościowych. Mediator zapewnia jednolity interfejs do różnych elementów danego podsystemu. Wzorzec mediatora umożliwia zmniejszenie liczby powiązań między różnymi klasami, poprzez utworzenie mediatora będącego jedyną klasą, która dokładnie zna metody wszystkich innych klas, którymi zarządza. Nie muszą one nic o sobie wiedzieć, jedynie przekazują polecenia mediatorowi, a ten rozsyła je do odpowiednich obiektów.

Rysunek 4:

Metoda szablonowa Metoda szablonowa czynnościowy wzorzec projektowy. Jego zadaniem jest zdefiniowanie metody, będącej szkieletem algorytmu. Algorytm ten może być następnie dokładnie definiowany w klasach pochodnych. Niezmienna część algorytmu zostaje opisana w metodzie szablonowej, której klient nie może nadpisać. W metodzie szablonowej wywoływane są inne metody, reprezentujące zmienne kroki algorytmu. Mogą one być abstrakcyjne lub definiować domyślne zachowania. Klient, który chce skorzystać z algorytmu, może wykorzystać domyślną implementację bądź może utworzyć klasę pochodną i nadpisać metody opisujące zmienne fragmenty algorytmu.

Rysunek 5:

Obserwator Obserwator wzorzec projektowy należący do grupy wzorców czynnościowych. Używany jest do powiadamiania zainteresowanych obiektów o zmianie stanu pewnego innego obiektu. public void powiadomobserwatorow() { dla każdego obserwatora obserwator z listy obserwatorzy: wywołaj obserwator.aktualizacja(obserwator); }

Rysunek 6:

Odwiedzający (wizytator) Odwiedzający (wizytator) wzorzec projektowy, którego zadaniem jest odseparowanie algorytmu od struktury obiektowej na której operuje. Praktycznym rezultatem tego odseparowania jest możliwość dodawania nowych operacji do aktualnych struktur obiektów bez konieczności ich modyfikacji.

Rysunek 7:

Pamiątka (znacznik) Pamiątka czynnościowy wzorzec projektowy. Jego zadaniem jest zapamiętanie i udostępnienie na zewnątrz wewnętrznego stanu obiektu bez naruszania hermetyzacji. Umożliwia to przywracanie zapamiętanego stanu obiektu.

Rysunek 8:

Polecenie Polecenie czynnościowy wzorzec projektowy, traktujący żądanie wykonania określonej czynności jako obiekt, dzięki czemu mogą być one parametryzowane w zależności od rodzaju odbiorcy, a także umieszczane w kolejkach i dziennikach.

Rysunek 9:

Stan Stan czynnościowy wzorzec projektowy, który umożliwia zmianę zachowania obiektu poprzez zmianę jego stanu wewnętrznego. Innymi słowy uzależnia sposób działania obiektu od stanu w jakim się aktualnie znajduje.

Rysunek 10:

Strategia (polityka) Strategia czynnościowy wzorzec projektowy, który definiuje rodzinę wymiennych algorytmów i kapsułkuje je w postaci klas. Umożliwia wymienne stosowanie każdego z nich w trakcie działania aplikacji niezależnie od korzystających z nich użytkowników. http://www.altcontroldelete.pl/artykuly/ wzorzec-strategia-przykladowa-implementacja-w-c-/

Rysunek 11:

Bibliografia Daniel Krasnokucki, Wzorce projektowe. Leksykon kieszonkowy, Wyd. Helion 2017. Wikipedia. http://devman.pl, dostęp online 15.03.2019. https://sourcemaking.com/, dostęp online 15.03.2019. https://www.oodesign.com/visitor-pattern.html, dostęp online 15.03.2019. https://medium.com/@sawomirkowalski/ design-patterns-state-6e4ad27df0d7, dostęp online 15.03.2019.