Projektowanie oprogramowania: wzorce architektoniczne i projektowe
|
|
- Bogna Piasecka
- 8 lat temu
- Przeglądów:
Transkrypt
1 Projektowanie oprogramowania: wzorce architektoniczne i projektowe
2 Ogólne zasady projektowania Nie staraj się zadziwić innych. Rzeczy oczywiste rób w sposób oczywisty. Nie rozmawiaj z nieznajomym. Projekt jest skończony, jeżeli już nic więcej nie da się z niego usunąć. Prostota przed ogólnością. Izomorfizm : jeden obiekt abstrakcyjny jedna klasa. Unikaj powielania kodu.
3 Wzorce architektoniczne Każdy wzorzec opisuje problem, który ciągle na nowo pojawia się w naszym otoczeniu i opisuje rdzeń jego rozwiązania w taki sposób, że można go używać milion razy i nigdy w ten sam sposób. (Christopher Alexander)
4 Wzorzec MVC MODEL Hermetyzuje stan aplikacji Odpowiada na zapytania o stanie Udostępnia funkcjonalność aplikacji Powiadamia o zmianach widoków Zapytanie o stanie Zawiadomienie o zmianach Zmiana stanu WIDOK Renderuje modele Prosi o aktualizację modelu Wysyła Twoje gesty do kontrolera Pozwala kontrolerowi wybrać widok Wybór widoku Gesty użytkownika KONTROLER Definiuje zachowanie aplikacji Mapuje akcje użytkownika na aktualizacje modelu Wybiera widok dla odpowiedzi Jeden na każdą funkcję Wywołanie metody Zdarzenia
5 Wzorzec MVC, cd. Na bazie wzorca MVC powstało wiele wzorców pochodnych o zmienionej strukturze oraz właściwościach. Jeden z nich to wzorzec PAC (ang. Presentation abstraction control, PAC) opisuje architekturę oprogramowania zorientowaną na interakcję i jest używany jako hierarchiczna struktura agentów, w której każdy agent składa się z triady prezentacji, abstrakcji i kontroli. Agenci komunikują się tylko przez element kontroli. W odróżnieniu od MVC w każdej triadzie całkowicie izoluje się prezentację (widok w MVC) i abstrakcję (model MVC), zapewnia to możliwość oddzielnej wielowątkowości modelu i widoku, co, np. może dać użytkownikowi wrażenie bardzo krótkiego czasu startu aplikacji, bo interfejs użytkownika (prezentacja) może być wyświetlana przed pełną inicjalizacją abstrakcji.
6 Wzorzec PAC
7 Wzorce projektowe (szablony) Wzorzec projektowy w informatyce jest: Opisem komunikujących się obiektów i klas, które są specjalnie wykonane, aby rozwiązać ogólny problem przy dokładnie określonym kontekście. (GangOfFour, 1994) Powracającym rozwiązaniem zagadnień projektowych, z którymi wciąż się spotykamy. (Alpert, 1994) Zbiorem reguł opisujących, w jaki sposób osiągnąć pewne cele w dziedzinie programowania. (Pree, 1994)
8 Wzorce projektowe, cd. Elementy wzorca projektowego: Nazwa wzorca - odzwierciedla problem, rozwiązanie i konsekwencje danego wzorca. Problem - opisuje zagadnienie i kontekst wystąpienia wzorca. Rozwiązanie - opisuje elementy tworzące projekt, ich relacje, odpowiedzialności oraz współpracę. Konsekwencje są to rezultaty zastosowania wzorca (korzyści i straty).
9 Klasyfikacja wzorców projektowych Konstrukcyjne (Creational) - dotyczą procesu tworzenia obiektu. Strukturalne (Structural) - dotyczą struktury klas lub obiektów. Behawioralne (Behavioral) - charakteryzują sposób, w jaki klasy lub obiekty oddziałują i dzielą odpowiedzialności.
10 Katalog wzorców projektowych Konstrukcyjne (Creational) Przeznaczenie Strukturalne (Structural) Behawioralne (Behavioral) Zakres Klasa Factory Method Adapter Interpreter Template Method Obiekt Abstract Factory Builder Prototype Singleton Adapter Bridge Composite Decorator Facade Proxy Chain of Responsibility Command Iterator Mediator Memento Flyweight Observer State Strategy Visitor
11 Opis wzorca projektowego Nazwa wzorca i klasyfikacja - krótko ukazuje istotę wzorca. Intencja pokazuje co dany wzorzec robi, do jakiego zagadnienia lub problemu się odnosi. Motywacja - ukazuje problem i sposób, w jaki struktury klas i obiektów go rozwiązują. Stosowalność określa w jakich sytuacjach dany wzorzec może być wykorzystany.
12 Opis wzorca projektowego c.d. Struktura jest to graficzna reprezentacja klas we wzorcu. Elementy są to klasy i obiekty uczestniczące w strukturze wzorca, oraz zakres ich odpowiedzialności. Powiązania pokazują jak powiązane są elementy struktury. Konsekwencje opisują jakie są skutki użycia danego wzorca.
13 Opis wzorca projektowego c.d. Implementacja są to ogólne wskazówki i techniki programowania, o których powinniśmy wiedzieć. Istotne jest uwzględnienie specyfiki języka. Przykładowy kod - fragmenty kodu ilustrujące przykładową implementację.
14 Wzorce konstrukcyjne (Creational patterns) Fabryka (Factory Method) Fabryka Abstrakcyjna (Abstract Factory) Singleton Prototyp (Prototype) Budowniczy (Builder)
15 Wzorce konstrukcyjne Zajmują się tworzeniem instancji obiektów Uniezależniają program od obiektów, które tworzą Obudowują wiedzę na temat konkretnych klas, które nasz system używa Ukrywają sposób, w jaki instancje tych klas są kreowane Pozwalają na wprowadzenie większej elastyczności do kodu naszego programu
16 Fabryka (Factory Method) Intencja Wzorzec ten, w zależności od dostarczonych danych, zwraca instancję jednej z możliwych klas Wszystkie zwracane klasy mają zazwyczaj wspólnego przodka i wspólne metody, jednak każda z nich wykonuje swoje zadania w inny sposób Stosowalność Gdy klasa nie może przewidzieć, jakiej klasy obiekty powinna stworzyć Gdy wpływ na rodzaj tworzonego obiektu mają dane
17 Przykład: Fabryka (Factory Method) Intencja Wzorzec ten, w zależności od dostarczonych danych, zwraca instancję jednej z możliwych klas Wszystkie zwracane klasy mają zazwyczaj wspólnego przodka i wspólne metody, jednak każda z nich wykonuje swoje zadania w inny sposób Stosowalność Gdy klasa nie może przewidzieć, jakiej klasy obiekty powinna stworzyć Gdy wpływ na rodzaj tworzonego obiektu mają dane
18 Fabryka przykładowy kod public class Osoba { public String plec; //K (kobieta) lub M (mężczyzna) public String jakaplec() { return plec; } } public class Kobieta extends Osoba { public Kobieta() { System.out.println( Dzien dobry Pani ); } } public class Mezczyzna extends Osoba { public Mezczyzna() { System.out.println( Dzien dobry Panu ); } } public class Powitanie { public static void main(string[] args) { Powitanie dziendobry=new Powitanie(); dziendobry.kto(arg[0]); } public Osoba kto(string plec) { if (plec.equals( K )) return new Kobieta(); if (plec.equals( M )) return new Mezczyzna(); else return null; } }
19 Fabryka struktura i konsekwencje Struktura Produkt Kreator Fabryka() Operacja() produkt=fabryka() KonkretnyProdukt KonkretnyKreator Konsekwencje Fabryka() Tworzenie obiektów w klasie z fabryką jest bardziej elastyczne niż tworzenie ich bezpośrednio Łączy logicznie klasy opisujące pojęcia równoległe Wada: klient musi wytworzyć podklasę kreatora (KonkretnyKreator) czasami tylko po to, żeby uzyskać KonkretnyProdukt return new KonkretnyProdukt
20 Przykład: Singleton Intencja Zapewnia, że dana klasa w każdym momencie ma tylko jedną instancję i udostępnia ją globalnie Motywacja Singleton polega na stworzeniu klasy, która przechwytuje żądania powstania liczniejszych instancji, oraz zapewnia łatwy dostęp do tej jedynej istniejącej Jedyna instancja jest rozszerzalna dla jej podklas, w których można jej używać bez modyfikacji kodu Przykłady użycia: w systemie może występować tylko jeden manager okien, jedyny punkt dostępu do baz danych, jedna kolejka do jednej drukarki
21 Singleton struktura, konsekwencje Struktura Operacja Instance pozwala klientowi dostać się do jedynej instancji (uniqueinstance) Singleton może być odpowiedzialny za tworzenie swojej własnej unikalnej instancji Konsekwencje Kontrolowany dostęp do jedynej instancji Zredukowana przestrzeń nazw Pozwala na zwiększenie dozwolonej ilości instancji return uniqueinstance Singleton static Instance() SingletonOperation() GetSingletonData() static uniqueinstance singletondata
22 Singleton - przykładowy kod public class Singleton { /*tworzymy konstruktor protected; gdyby był private chroniłby *przed tworzeniem instancji Singletonu, jednak byłoby niemożliwe *tworzenie instancji jego podklas */ } protected Singleton () { //... } static public Singleton _instance = null; /*metoda instance() zwraca jedyną instancję Singletonu; *użycie: Singleton.instance( */ static public Singleton instance() { if (null == _instance) { _instance = new Singleton(); } return _instance; }
23 Wzorce strukturalne Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy
24 Przykład: Adapter Dopasowanie (adaptowanie) interfejsu klasy. Do użycia, gdy mamy istniejącą klasę której chcemy użyć, ale nie zgadza się interfejs. Wersja z wielo-dziedziczeniem Wersja z delegacją
25 Bridge - podobny do wzorca Adapter. Osobna klasa dla abstrakcji i osobna dla implementacji. Dwie hierarchie dziedziczenia. Implementacja jest ukrywana. Composite - sugeruje aby tworzyć drzewiaste struktury w taki sposób, że węzły i liście mają ten sam interfejs. Decorator - omawiany wcześniej Facade - stosowany gdy mamy złożony zestaw obiektów ze skomplikowanymi zależnościami. Dodajemy nowy obiekt który dostarcza prostego interfejsu. Ogranicza to możliwości, ale zawsze można skorzystać z pełnego zestawu obiektów. Flyweight - gdy występuje potrzeba użycia bardzo wielu instancji danej klasy. Wzorzec ten pokazuje jak tworzyć jedną instancję zastępującą wiele. Proxy - pośrednik. Działania wykonywane są na nim, a on działa na właściwej klasie (o tym samym interfejsie). Szczególnie użyteczny w środowisku sieciowym.
26 Wzorce czynnościowe State, Observer, Chain of Responsibility, Command, Iterator, Mediator, Strategy, Visitor
27 Przykład: Observer Gdy jeden z obiektów (Observer) chce być informowany o zmianach zachodzących w innym obiekcie (Subject). Może być kilka obserwatorów jednego obiektu klasy Subject. Obiekty w tej relacji mogą być luźno powiązane.
28 Chain of Responsibility - nadawca wysyła żądanie do jednego z obiektów, a obiekty z łańcuch przekazują sobie żądanie. Command - żądanie ma formę obiektu Iterator - poruszanie się po dowolnej kolekcji danych Mediator - pośrednik między obiektami - brak jawnych odwołań Strategy - podobnie do State. Różnica jest taka, że w State zmiany zależały od zmian w wewnętrznym stanie obiektu - tutaj zmiana jest wykonywana z zewnątrz. Dodatkowo w State każda z klas mogła robić zupełnie co innego, a tutaj ma robić dokładnie to samo (ale być może w inny sposób). Visitor - klasa Visitor odwiedza każdy z obiektów.
29 Źródła wiedzy 1. Cooper J. W., Java. Wzorce Projektowe, Gliwice Shalloway A., Projektowanie zorientowane obiektowo. Wzorce projektowe. Wyd. Helion Christopher Alexander,An Introduction for Object-Oriented Designers, 4. Kremer R., Programming Patterns Overview, 5. Walter B., Wzorce projektowe,
Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz
Wzorce projektowe ArrayList DataGridView Aplikacja i zdarzenia Paweł Chodkiewicz Wzorzec uniwersalne rozwiązanie często powtarzających się problemów. Wzorzec opisuje problem, który powtarza się wielokrotnie
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
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
Wprowadzenie do programowania aplikacji mobilnych
Wprowadzenie do programowania aplikacji mobilnych dr Przemysław Juszczuk dr Przemysław Juszczuk Trochę historii Idea wzorców projektowych wywodzi się jeszcze z wczesnych lat osiemdziesiątych ubiegłego
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
Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych
Projektowanie obiektowe Wzorce projektowe Wprowadzenie do wzorców projektowych 1 Zagadnienia Katalog wzorców projektowych wg Gang of Four Zasady projektowania obiektowego S O L I D MVC - Model-Widok-Kontroler
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
Technologia Programowania 2016/2017 Wykład 4
Technologia Programowania 2016/2017 Wykład 4 Wzorce projektowe GoF Jakub Lemiesz Wzorce GRASP a wzorce GoF Znamy 9 wzorców GRASP ogólne zasady Na GRASP opierają się klasyczne wzorce GoF Na wzorcach GoF
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.
Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.
1/8 Singleton Cel: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej. Przykład: Niekiedy ważne jest, aby tworzyć tylko jedną instancję jakiejś klasy. Globalne zmienne
Testowanie oprogramowania Wzorce projektowe
Testowanie oprogramowania Wzorce projektowe 1/66 Testowanie oprogramowania Wzorce projektowe dr inż. Grzegorz Michalski 17 listopada 2015 Testowanie oprogramowania Wzorce projektowe 2/66 Plan wykładu Agenda
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
WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)
WZORCE PROJEKTOWE (I) (DESIGN PATTERNS) Maciej Patan Motywacje W wielu dziedzinach nowoczesnej inżynierii napotykamy na następujące zagadnienia: Czy typowe zadania i problemy można rozwiązywać w powtarzalny
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
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
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
Technologia Programowania 2016/2017 Wykład 5
Technologia Programowania 2016/2017 Wykład 5 Wzorce GoF Jakub Lemiesz Wzorce GoF Kreacyjne Builder Singleton Simple Factory Factory Method Abstract Factory Prototype Strukturalne Adapter Decorator Proxy
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 24.02.2014 WYKŁAD 1 Wzorce projektowe Znaczenie
Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33
Wzorce projektowe cz. I Wzorce projektowe cz. I 1/33 Wzorce projektowe cz. I 2/33 Historia Wzorce projektowe: wywodzą się z wzorców projektowych w architekturze termin wzorca projektowego wprowadzony do
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Wzorce projektowe Michał Węgorek
Wzorce projektowe Michał Węgorek Wzorce projektowe Plan prezentacji Co to jest i po co to jest? Podział Najczęściej spotykane wzorce Bibliografia Co to jest i po co to jest? Wzorzec projektowy (ang. Design
Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015
Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015 1 Wzorce podstawowe 1.1 Interface vs Abstract class class InterfaceAbstractClass
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
Wzorce projektowe. dr inż. Marcin Pietroo
Wzorce projektowe dr inż. Marcin Pietroo Iterator czynnościowy wzorzec projektowy (obiektowy), którego celem jest zapewnienie sekwencyjnego dostępu do podobiektów zgrupowanych w większym obiekcie (np.
(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński
(wybrane) Wzorce projektowe Programowanie Obiektowe Mateusz Cicheński Kreacyjne Fabryka abstrakcyjna (Abstract Factory) Budowniczy (Builder) Metoda wytwórcza (Factory Method) Prototyp (Prototype) Singleton
(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński
(wybrane) Wzorce projektowe Programowanie Obiektowe Mateusz Cicheński Kreacyjne Fabryka abstrakcyjna (Abstract Factory) Budowniczy (Builder) Metoda wytwórcza (Factory Method) Prototyp (Prototype) Singleton
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ół
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
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
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
Wzorce projektowe. Wstęp
Wstęp Stworzenie programu łatwego w rozwijaniu i naprawie nie należy do łatwych zadań. Na różnych etapach prac można napotkać wiele niemiłych niespodzianek i przeciwności losu, głównie takich które sami
Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności
Projektowanie obiektowe Wzorce projektowe Gang of Four Wzorce odpowiedzialności 1 Roadmap Singleton Observer Mediator Proxy Flyweight 2 Wzorce odpowiedzialności Udostępniają techniki centralizacji, delegowania
Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.
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
UML [ Unified Modeling Language ]
UML [ Unified Modeling Language ] UML język formalny służący do opisu świata obiektów w analizie obiektowej oraz programowaniu obiektowym. W najnowszej wersji (2.4.x) języka UML wyróżnia się 13 diagramów
Program szkolenia: Wzorce projektowe w C++
Program szkolenia: Wzorce projektowe w C++ Informacje: Nazwa: Wzorce projektowe w C++ Kod: CCPP-craft-C++ Patterns Kategoria: Craftsmanship dla programistów C i C ++ Grupa docelowa: developerzy Czas trwania:
Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016
Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016 1 Wzorce strukturalne 1.1 Facade Motto: uproszczony interfejs dla podsystemu z wieloma interfejsami class SmtpFacade
Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne
Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Wzorce projektowe i ich implementacja
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
Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Rysunkowy tutorial Możesz swobodnie dystrybuować ten plik jeśli pozostawisz go w nietkniętym stanie. Możesz także cytować jego fragmenty umieszczając w tekście odnośnik http://mbartyzel.blogspot.com Jak
Wzorce projektowe [ wstęp ]
Wzorce projektowe [ wstęp ] Motywacje definiowania wzorców projektowych Za twórcę uważany jest amerykański architekt Christopher Alexander Alexander, C., Ishikawa, S., Silverstein, M., The Timeless Way
PHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Programowanie zorientowane obiektowo. Mateusz Kołecki
Programowanie zorientowane obiektowo Mateusz Kołecki Plan MVC Wstęp Separacja odpowiedzialnośći Antyprzykład Dobry przykład Wady/zalety MVC MVC to tylko początek - wzorce projektowe Dlaczego chcemy używać
Abstract Factory (fabryka abstrakcyjna)
1/9 Abstract Factory (fabryka abstrakcyjna) Cel: Zapewnienie interfejsu do tworzenia rodzin powiązanych obiektów bez specyfikacji konkretnej klasy. Przykład: Aplikacja do ustawiania mebli: osobne rodziny
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Wzorce projektowe i refaktoryzacja
Wzorce projektowe i refaktoryzacja Paweł Kozioł p.koziol@students.mimuw.edu.pl 18.01.2005 Moja praca magisterska Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE Prowadzący:
Technologia Programowania 2016/2017 Wykład 6
Technologia Programowania 2016/2017 Wykład 6 Mockito, wzorce GoF, MVC Jakub Lemiesz Lista zadań na laboratorium 2 / 48 Testowanie Tradycyjnie: testy jednostkowe, integracyjne, systemowe, testy akceptacyjne
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń
Projektowanie obiektowe Wzorce projektowe Gang of Four Wzorce rozszerzeń 1 Roadmap Decorator Iterator Visitor 2 Wzorce rozszerzeń Mają na celu uczynić proces rozszerzania kodu bardziej czytelnym, prostym
Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka
1 Omówienie wzorców wykorzystywanych w Prism 5.0 Dominika Różycka Czym jest wzorzec projektowy? 2 3 Wzorzec projektowy 1. Uniwersalne i sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych
Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl
Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki
Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym
Wzorce oprogramowania Gof (cd) (Gang of Four skrót odnoszący się do autorów ksiązki: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software)
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Polimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Programowanie obiektowe
Wykład 12 Marcin Młotkowski 16 maja 2018 Plan wykładu 1 Analiza obiektowa Dziedziczenie Dziedziczenie a składanie 2 Marcin Młotkowski 482 / 537 Dziedziczenie Dziedziczenie a składanie Plan wykładu 1 Analiza
Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)
Projektowanie obiektowe Wzorce projektowe Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów) 1 Roadmap Adapter Bridge Composite Facade 2 Pojęcia obiekt interfejs typ klasa 3 Co to jest delegacja?
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
UML w Visual Studio. Michał Ciećwierz
UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować
Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop Spis treści
Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop. 2011 Spis treści Wprowadzenie Dla kogo przeznaczona jest ta ksiąŝka? 22 Wiemy takŝe, co sobie myśli Twój mózg 23 Metapoznanie 25 Zmuś swój mózg
Technologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
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ść
Enkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
METODY PROGRAMOWANIA
METODY PROGRAMOWANIA Wzorzec Repository 21 października 2017 Krzysztof Pawłowski kpawlowski@pjwstk.edu.pl Każdy wzorzec opisuje problem, który ciągle pojawia się w naszej dziedzinie, a następnie określa
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,
Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/
Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.
Programowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Powiązania i tworzenie obiektów Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. IV Jesień 2014 1 / 27 Powiązania Jeden do jeden Przez
Programowanie obiektowe
Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w
Wzorce projektowe. dr Jarosław Skaruz
Wzorce projektowe dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Wprowadzenie do wzorców projektowych Elementy wzorców Zalety stosowania wzorców Podział Strategia Singleton
Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7
Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Modelowanie i Programowanie Obiektowe
Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do
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
1) Wzorzec projektowy Adapter. Zastosowanie:
Projektowanie Systemów Komputerowych Laboratoria/Projekty Krzysztof Regulski AGH, WIMiIP WZORCE STRUKTURALNE PSK - projektowanie systemów komputerowych, notatki w Internecie, Beata Frączek, http://brasil.cel.agh.edu.pl/~09sbfraczek
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
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
Programowanie obiektowe
Programowanie obiektowe Metody statyczne i klasowe Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. VI Jesień 2013 1 / 23 W poprzednich odcinkach... Klasy kategorie obiektów Przynależność
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
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Komentarz. W poszukiwaniu zaginionego wzorca
Komentarz W poszukiwaniu zaginionego wzorca W poszukiwaniu zaginionego wzorca Administrator nadal z powodzeniem używa tego samego programu do zarządzania usługami. Aczkolwiek pojawia się coraz więcej systemów
Metody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Podstawy Języka Java
Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących
Perspektywa obiektowości
Inżynieria Oprogramowania Wykład 10 Wzorce projektowe Perspektywa obiektowości obiekty hermetyzacja dziedziczenie klasy abstrakcyjne 2 Wzorce projektowe Czym są wzorce projektowe Przykładowe definicje:
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
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.
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6
Instrukcja 6 Laboratorium 8 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
MVVM Light Toolkit. Julita Borkowska
MVVM Light Toolkit Julita Borkowska Czym jest MVVM Light Toolkit? MVVM Light Toolkit został stworzony w 2009 roku przez Laurenta Bugnion. Jest to biblioteka dostarczająca zestaw komponentów pomocnych podczas
Decorator (dekorator)
1/10 Decorator (dekorator) Cel: Dołącza dynamicznie nową funkcjonalność do obiektu elastyczna alternatywa dziedziczenia. Przykład: interface iplik { void zapisz(string tekst); String odczytaj(); class
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Polimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Programowanie obiektowe
Programowanie obiektowe Wykład 5: Dziedziczenie i polimorfizm 3/24/2013 S.Deniziak: Programowanie obiektowe - Java 1 Kompozycja klas class Drzewo { class Krzew { class Las { Drzewo drzewostan[ ]; Krzew
KLASY, INTERFEJSY, ITP
KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/
Programowanie obiektowe i zdarzeniowe
Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych