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

Podobne dokumenty
Programowanie obiektowe

Wprowadzenie do programowania aplikacji mobilnych

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Wzorce projektowe. dr inż. Marcin Pietroo

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

Projektowanie obiektowe Wzorce projektowe

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

Wzorce projektowe. dr inż. Marcin Pietroo

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

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

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

Wzorce projektowe Michał Węgorek

Wzorce projektowe kreacyjne

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Modelowanie i Programowanie Obiektowe

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

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

Język programowania. Andrzej Bobyk

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

Zaawansowane programowanie w C++ (PCP)

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Programowanie Zespołowe

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

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe - 1.

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

Projektowanie oprogramowania: wzorce architektoniczne i projektowe

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

Przykładowa implementacja

Programowanie obiektowe

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


Programowanie obiektowe

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

INŻYNIERIA OPROGRAMOWANIA

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

Wykład 1 Inżynieria Oprogramowania

Testowanie oprogramowania Wzorce projektowe

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

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Zaawansowane programowanie obiektowe - wykład 5

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

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

Wzorce projektowe. dr inż. Marcin Pietroo

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

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Komentarz. W poszukiwaniu zaginionego wzorca

WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań

Wzorce projektowe. Wstęp

PRZEWODNIK PO PRZEDMIOCIE

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

Programowanie obiektowe

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

Programowanie obiektowe

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

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

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

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

Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

Wprowadzenie niektórych zagadnień OOP oraz wzorce operacyjne

Wzorce projektowe i refaktoryzacja

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

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

PHP 5 język obiektowy

Przykład 1 Iteracja 1 tworzenia oprogramowania

Szkolenie wycofane z oferty

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

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

Technologie obiektowe

Programowanie zorientowane obiektowo. Mateusz Kołecki

Projektowanie logiki aplikacji

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Technologia Programowania 2016/2017 Wykład 4

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

INŻYNIERIA OPROGRAMOWANIA

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

1) Wzorzec projektowy Adapter. Zastosowanie:

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Techniki projektowania wzorce projektowe

Wprowadzenie do systemów informacyjnych

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

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

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Podstawy programowania III WYKŁAD 4

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

MVC w praktyce tworzymy system artykułów. cz. 1

GUI - projektowanie interfejsów

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

Przychodnia 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę Osoba.

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Transkrypt:

Adrian Skalczuk Szymon Kosarzycki

Spis Treści

Wstęp [1/2] Wzorce projektowe są nieodłącznym przyjacielem programisty pozwalają pisać czystszy kod, łatwiejszy do zrozumienia przez innych i zapewniają pewien abstrakcyjny zbiór rozwiązań abstrakcyjnych problemów.

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

Kluczowe informacje o każdym wzorcu [1/2] Nazwa i klasyfikacja wzorca Cel co pozwala osiągnąć Motywacja opisuje cel wzorca (co stara się osiągnąć / jaki problem wyeliminować) oraz powodu, dla których należy go użyć Zastosowanie opisuje sytuacje, problem, który sugeruje użycie wzorca Struktura wizualna reprezentacja (najczęściej w formie diagramu UML lub innego, koncepcyjnego) Uczestnicy lista klas i obiektów, które biorą udział w implementacji tego wzorca

Kluczowe informacje o każdym wzorcu [2/2] Współpraca opis, w jaki sposób powyższe elementy współpracują ze sobą, jakie są między nimi interakcje Konsekwencje wynik uzycia wzorca, koszty jego stosowania i kompromisy Implementacja opis implementacji (np. w pseudokodzie lub normalnym tekstem) Przykład przykład implementacji w wybranym języku Znane zastosowania przykłady użycia (np. w popularnych bibliotekach, narzędziach Powiązane wzorce podobne lub komplementarne wzorce

Podstawowy podział wzorców Kreacyjne opisują, w jaki sposób obiekty są tworzone Behawioralne opisują zachowanie obiektów Strukturalne opisują sposób, w jaki obiekty są zbudowane Architektoniczne (wprowadzone później) opisują bardziej abstrakcyjne wzorce jak np. MVC

Wzorzec: Fasada [1/3] Wzorzec fasady polega na tym, że tworzymy klasę, której jedynym zadaniem jest wywoływanie odpowiednich metod z innych klas (np. serwisów) czasem w odpowiedniej kolejności lub dodając/modyfikując pewne informacje.

Wzorzec: Fasada [2/3] Jako przykład (choć nie do końca prawidłowy, ale za to znany wszystkim czytelniczkom) możemy podać kontrolery w aplikacji webowej najczęściej ich działanie ogranicza się do prostej logiki i wywołania odpowiedniego serwisu (lub kilku serwisów).

Wzorzec: Fasada [3/3] W praktyce fasady często spotykamy w sytuacjach, kiedy mamy wiele różnych systemów (np. w korporacjach), a potrzebujemy spójnego sposobu na dostęp do danych z róznych źródeł (np. dla działu marketingu potrzebujemy danych ze sprzedaży oraz z magazynu). Fasada ułatwia dostęp do różnych obiektów i ukrywa szczegóły implementacji.

Wzorzec: Fabryka [1/2] Wzorzec fabryka (ang. factory method) to metoda, która tworzy nam nowy obiekt. Powodów, dla których chcemy tak zrobić może być wiele najczęściej jako typ zwracany deklarujemy interfejs, a metoda zawiera logikę która decyduje jakiego typu obiekt utworzyć:

Wzorzec: Fabryka [2/2] Są przypadki, że logikę realizowaną przez metodę-fabrykę moglibyśmy zaszyć w konstruktorze, ale nie zawsze jest to wskazane. Takie podejście pozwala na rozszerzenie funkcjonalności w przyszłości za pomocą technik OOP, np. dodanie obsługi nowych klas czy zmiana algorytmu. Przykład użycia fabryki to np. konfiguracja Stringa za pomocą kodu Javy (używając metod z adnotacjami @Bean) OOP - Programowanie obiektowe, programowanie definiujące obiekty.

Podsumowanie To, co trzeba koniecznie zapamiętać wzorce projektowe nie są odpowiedzią na problemy. Są wskazówkami dojścia do rozwiązania, ale nie stanowią odpowiedzi. Można je bardzo łatwo nadużyć. Absolutnie niedopuszczalna jest sytuacja, w której naciągamy problem tak, aby pasował do konkretnego wzorca (nie, nawet troszeczkę też jest niedopuszczalne!)

Źródła http://kobietydokodu.pl/21-wzorce-projektowe/ Serdeczne podziękowania dla Pana Jakuba, moderatora strony za szybką pomoc w wyjaśnieniu problemu ;)