Wzorce projektowe. dr inż. Marcin Pietroo

Podobne dokumenty
Programowanie obiektowe

Wzorce projektowe. dr inż. Marcin Pietroo

Zaawansowane programowanie w C++ (PCP)

Wzorce projektowe Michał Węgorek

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

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

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

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

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

Wprowadzenie do programowania aplikacji mobilnych

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

Zaawansowane programowanie obiektowe - wykład 5

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

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

Testowanie oprogramowania Wzorce projektowe

Wzorce projektowe. dr inż. Marcin Pietroo

Projektowanie obiektowe Wzorce projektowe

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

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

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

Programowanie Zespołowe

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

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

Wzorce projektowe. Wstęp

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

Technologia Programowania 2016/2017 Wykład 4

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

Builder (budowniczy) Cel: Przykład:

Wzorce projektowe kreacyjne

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Programowanie zorientowane obiektowo. Mateusz Kołecki

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Perspektywa obiektowości

Projektowanie oprogramowania: wzorce architektoniczne i projektowe

Technologia Programowania 2016/2017 Wykład 5


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

Programowanie i projektowanie obiektowe

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)

Abstract Factory (fabryka abstrakcyjna)

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

PHP 5 język obiektowy

ASP.NET Wprowadzenie. provided by Przemysław Bykowski

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

Wzorce projektowe i refaktoryzacja

Wzorce projektowe. dr Jarosław Skaruz

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

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

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Wypożyczalnia VIDEO. Technologie obiektowe

Modelowanie i Programowanie Obiektowe

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

1) Wzorzec projektowy Adapter. Zastosowanie:

Programowanie obiektowe

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Programowanie w języku Java WYKŁAD

Wykład 5. Inżynieria oprogramowania MIS s MIO s MIS n Listopad 2014

Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym

Wzorce projektowe [ wstęp ]

Praca z kodem legacy : strategie, naprawa błędów, refaktoryzacja oraz

Programowanie obiektowe - 1.

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

WZORCE PROJEKTOWE. Software engineering has accepted as its charter How to program if you cannot. E. Djikstra

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

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

Podstawy programowania III WYKŁAD 4

Programowanie obiektowe

Programowanie obiektowe

Diagramy klas. dr Jarosław Skaruz

Wzorce oprogramowania Gof. zastosowane w modelu obiektowym

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

Ochrona zasobów. mechanizm ochrony polityka ochrony. 2. Domeny ochrony 3. Macierz dostępów 4. Implementacja macierzy dostępów

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop Spis treści

Programowanie obiektowe

Przykładowa implementacja

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

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

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

Wzorce projektowe warstwy danych

Historia modeli programowania

Ochrona zasobów. Cele ochrony. Polityka i mechanizm ochrony. Dariusz Wawrzyniak Cele ochrony

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Spis treści. Wprowadzenie 15

Programowanie współbieżne i rozproszone

Wykład 1 Inżynieria Oprogramowania

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

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

Program szkolenia: Wzorce projektowe w C++

Język programowania. Andrzej Bobyk

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Modelowanie obiektowe

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 2

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Komentarz. W poszukiwaniu zaginionego wzorca

Technologie obiektowe

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Podstawy Programowania Obiektowego

Transkrypt:

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. Przedstawia powiązania i zależności pomiędzy klasami oraz obiektami i ułatwia tworzenie, modyfikację oraz pielęgnację oprogramowania. Wzorce projektowe stosowane są w projektach wykorzystujących programowanie obiektowe.

Wzorce projektowe Trzy kategorie: - kreacyjne (creational), - strukturalne (structural), - czynnościowe (bahavioral),

Wzorce kreacyjne Budowniczy (obiektowy), Fabryka abstrakcyjna (obiektowy), Metoda wytwórcza (klasowy), Prototyp (obiektowy), Singleton (obiektowy).

Wzorce strukturalne Adapter (klasowy oraz obiektowy), Dekorator (obiektowy), Fasada (obiektowy), Kompozyt (obiektowy), Most (obiektowy), Pełnomocnik (obiektowy), Pyłek (obiektowy).

Wzorce czynnościowe Interpreter (klasowy), Iterator (obiektowy), Łaocuch zobowiązao (obiektowy), Mediator (obiektowy), Metoda szablonowa (klasowy), Obserwator (obiektowy), Odwiedzający (obiektowy), Pamiątka (obiektowy), Polecenie (obiektowy), Stan (obiektowy), Strategia (obiektowy).

Wzorce projektowe Singleton - kreacyjny wzorzec projektowy, którego celem jest ograniczenie możliwości tworzenia obiektów danej klasy do jednej instancji Singleton musi byd ostrożnie stosowany w systemach wielowątkowych. Zażądanie instancji klasy przez dwa wątki równocześnie może doprowadzid do utworzenia dwóch niezależnych instancji, dlatego metoda dostępowa powinna byd wtedy zaimplementowana z wykorzystaniem wzajemnego wykluczania.

Singleton Singleton implementuje się przez stworzenie klasy, która posiada statyczną metodę, która najpierw sprawdza, czy istnieje już instancja tej klasy, w razie potrzeby tworząc ją. Instancję przechowuje się w prywatnym lub chronionym, statycznym polu, do którego dostęp ma tylko opisana wyżej metoda, która jest jedyną drogą pozyskania instancji obiektu singletonu aby uniemożliwid tworzenie dodatkowych instancji, konstruktor klasy deklaruje się jako prywatny lub chroniony.

Wzorce projektowe Factory Method wzorzec projektowy, którego celem jest dostarczenie interfejsu do tworzenia obiektów nieokreślonych jako powiązanych typów. Abstract Factory wzorzec projektowy, którego celem jest dostarczenie interfejsu do tworzenia różnych obiektów jednego typu (tej samej rodziny) bez specyfikowania ich konkretnych klas.

Factory Method We wzorcu występują dwie ogólne klasy bądź interfejsy definiujące pewien typ zasobów (Product) oraz sposób ich tworzenia (Creator, metoda factorymethod()). Wyprowadza się konkretne klasy zasobów (ConcreteProduct) wraz z tworzącymi je klasami wytwórczymi (ConcreteCreator), które dostarczają odpowiednią implementację metody factorymethod(). Komponent pragnący tworzyd zasoby i operowad na nich, korzysta z ogólnych interfejsów Product oraz Creator, umożliwiając wybór konkretnej implementacji w sposób dynamiczny

Factory Method Aplikacja wykorzystująca metody wytwórcze jest niezależna od konkretnych implementacji zasobów oraz procesu ich tworzenia. Mogą byd one ustalane dynamicznie w trakcie uruchomienia lub zmieniane podczas działania aplikacji. Wzorzec hermetyzuje proces tworzenia obiektów, zamykając go za ściśle zdefiniowanym interfejsem. Właściwośd ta jest wykorzystywana, gdy tworzenie nowego obiektu jest złożoną operacją.

Abstract Factory Celem jest dostarczenie interfejsu do tworzenia różnych obiektów jednego typu (tej samej rodziny) bez specyfikowania ich konkretnych klas. Umożliwia jednemu obiektowi tworzenie różnych, powiązanych ze sobą, reprezentacji podobiektów określając ich typy podczas działania programu. Fabryka abstrakcyjna kładzie nacisk na tworzenie produktów z konkretnej rodziny

Abstract Factory Jednym z plusów wykorzystania wzorca jest możliwośd ukrycia szczegółów implementacyjnych klas reprezentujących konkretny produkt - klient widzi tylko interfejs. Ukryciu ulegają także nazwy tych klas, co nie wymusza ich zapamiętywania i odizolowuje klienta od problemu określenia do której klasy należy obiekt. Do zysków należy także możliwośd całkowitego ukrycia implementacji obiektów przed klientem. Klient widzi tylko interfejs i nie ma możliwości zajrzenia do kodu oraz to, że wymuszana jest spójnośd produktów. Do minusów należy zaliczyd trudnośd rozszerzania rodziny obiektów o nowe podobiekty. Wymusza to modyfikację klasy fabryki abstrakcyjnej oraz wszystkich obiektów, które są tworzone przez nią.

Abstract Factory

Builder kreacyjny wzorzec projektowy, którego celem jest rozdzielenie sposobu tworzenia obiektów od ich reprezentacji proces tworzenia obiektu podzielony jest na kilka mniejszych etapów a każdy z tych etapów może byd implementowany na wiele sposobów. Zazwyczaj stosowany jest do konstrukcji obiektów złożonych, których konfiguracja i inicjalizacja jest procesem wieloetapowym. Budowniczy różni się od wzorca fabryki abstrakcyjnej oraz pozostałych wzorców kreacyjnych tym, że skupia się na sposobie tworzenia obiektów reprezentujących produkty. Tworzy drobną częśd skomplikowanego produktu za każdym swoim wywołaniem jednocześnie kontrolując stan wykonanej pracy.

Builder

Builder Zaletami stosowania wzorca są: duża możliwośd zróżnicowania wewnętrznych struktur klas, większa możliwośd kontrolowania tego, w jaki sposób tworzony jest obiekt (proces konstrukcyjny jest niezależny od elementów, z których składa się tworzony obiekt) oraz duża skalowalnośd (dodawanie nowych reprezentacji obiektów jest uproszczone). Stosowanie wzorca zapobiega także tworzeniu zduplikowanego kodu odpowiedzialnego za tworzenie obiektów, gdyż proces tworzenia konkretnych elementów obiektów zamknięty jest w poszczególnych procedurach. Wada to duża liczba obiektów reprezentujących konkretne produkty.

kopiowanie (clone()) Prototyp