Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35
|
|
- Konrad Małecki
- 7 lat temu
- Przeglądów:
Transkrypt
1 Wzorce projektowe cz. II Wzorce projektowe cz. II 1/35
2 Wzorce projektowe cz. II 2/35 Iterator Przeznaczenie Wzorzec zapewnia sekwencyjny dostęp do elementów obiektu zagregowanego bez ujawniania jego reprezentacji wewnętrznej Uzasadnienie Obiekt zagregowany, taki jak lista, powinien umożliwiać dostęp do swoich elementów bez ujawniania struktury wewnętrznej. Stosowalność: uzyskanie dostępu do zawartości obiektu-agregatu bez ujawniania jego struktury wewnętrznej, umożliwienie wielokrotnego przechodzenia obiektów-agregatów, zapewnienia jednakowego interfejsu przechodzenia różnych struktur zagregowanych
3 Wzorce projektowe cz. II 3/35 Iterator Rysunek: Struktura budowy wzorca Iterator
4 Wzorce projektowe cz. II 4/35 Iterator Uczestnicy: iterator iterator konkretny agregat agregat konkretny Konsekwencje: Możliwość rozmaitego przechodzenia agregatów Iteratory upraszczają interfejs Agregatu W danej chwili może się odbywać więcej niż jedno przechodzenie agregatu
5 Wzorce projektowe cz. II 5/35 Iterator Znane zastosowania Większość bibliotek klas-kolekcji oferuje iteratory w takiej czy innej postaci, np: C++ Java C#
6 Wzorce projektowe cz. II 6/35 Iterator przykład kodu Implementacja listy template <c l a s s Item> c l a s s L i s t { p u b l i c : L i s t ( long s i z e = DEFAULT LIST CAPACITY ) ; } ; long Count ( ) const ; Item& Get ( long i n d e x ) const ; //...
7 Wzorce projektowe cz. II 7/35 Iterator przykład kodu Implementacja klasy abstrakcyjnej Iterator template <c l a s s Item> c l a s s I t e r a t o r { p u b l i c : v i r t u a l void F i r s t ( ) = 0 ; v i r t u a l void Next ( ) = 0 ; v i r t u a l void IsDone ( ) const = 0 ; v i r t u a l Item C u r r e n t I t e m ( ) const = 0 ; protected : I t e r a t o r ( ) ; } ;
8 Wzorce projektowe cz. II 8/35 Iterator przykład kodu Implementacja podklasy ListIterator klasy Iterator template <c l a s s Item> c l a s s L i s t I t e r a t o r : p u b l i c I t e r a t o r <Item> { p u b l i c : L i s t I t e r a t o r ( const L i s t <Item > a L i s t ) ; v i r t u a l void F i r s t ( ) ; v i r t u a l void Next ( ) ; v i r t u a l void IsDone ( ) const ; v i r t u a l Item C u r r e n t I t e m ( ) const ; p r i v a t e : const L i s t <Item > l i s t ; long c u r r e n t ; } ;
9 Wzorce projektowe cz. II 9/35 Iterator przykład kodu Implementacja podklasy ListIterator klasy Iterator template <c l a s s Item> L i s t I t e r a t o r <Item >:: L i s t I t e r a t o r ( const L i s t <Item > a L i s t ) : l i s t ( a L i s t ), c u r r e n t ( 0 ) { } template <c l a s s Item> void L i s t I t e r a t o r <Item >:: Next ( ) { c u r r e n t ++; } template <c l a s s Item> Item L i s t I t e r a t o r <Item >:: C u r r e n t I t e m ( ) const { i f ( IsDone ( ) ) { throw I t e r a t o r O u t O f B o u n d s ; } return l i s t >Get ( c u r r e n t ) ; }
10 Wzorce projektowe cz. II 10/35 Iterator przykład kodu Wykorzystanie iteratorów void P r i n t E m p l o y e e s ( I t e r a t o r <Employee >& i ) { f o r ( i. F i r s t ( ) ;! i. IsDone ( ) ; i. Next ( ) ) { i. C u r r e n t I t e m () > P r i n t ( ) ; } } L i s t <Employee > employees ; //... L i s t I t e r a t o r <Employee > f o r w a r d ( employees ) ; B a c k w a r d L i s t I t e r a t o r <Employee > backward ( employees ) ; P r i n t E m p l o y e e s ( f o r w a r d ) ; P r i n t E m p l o y e e s ( backward ) ;
11 Wzorce projektowe cz. II 11/35 Singleton Przeznaczenie Gwarantuje, że klasa ma tylko jeden egzemplarz i zapewnia globalny dostęp do niego. Uzasadnienie W wypadku niektórych klas jest niezwykle ważne, by miały tylko jeden egzemplarz, np. w systemie może być wiele drukarek, ale powinien być tylko jeden program buforujący. Stosowalność: klasa musi mieć dokładnie jeden egzemplarz, dostępny dla jej klientów, powinno być możliwe rozbudowywanie tego jedynego egzemplarza przez definiowanie podklas, a klienci powinni móc używać rozszerzonego egzemplarza bez modyfikowania swojego kodu
12 Wzorce projektowe cz. II 12/35 Singleton Rysunek: Struktura wzorca Singleton
13 Wzorce projektowe cz. II 13/35 Singleton Uczestnicy Singleton Konsekwencje Kontrolowany dostęp do jednego egzemplarza Mniejsza przestrzeń nazw Możliwe udoskonalanie operacji i reprezentacji Zmienna liczba egzemplarzy Większa elastyczność niż w wypadku operacji statycznych
14 Wzorce projektowe cz. II 14/35 Singleton Przykład kodu c l a s s S i n g l e t o n { p u b l i c : s t a t i c S i n g l e t o n I n s t a n c e ( ) ; protected : S i n g l e t o n ( ) ; p r i v a t e : s t a t i c S i n g l e t o n i n s t a n c e ; } ; S i n g l e t o n S i n g l e t o n : : i n s t a n c e = 0 ; S i n g l e t o n S i n g l e t o n : : I n s t a n c e ( ) { i f ( i n s t a n c e == 0) { i n s t a n c e = new S i n g l e t o n ; } return i n s t a n c e ; }
15 Wzorce projektowe cz. II 15/35 Fabryka abstrakcyjna Przeznaczenie Udostępnia interfejs do tworzenia rodzin powiązanych ze sobą lub zależnych od siebie obiektów bez określania ich klas konkretnych. Uzasadnienie Pakiet narzędziowy do tworzenia interfejsów użytkownika obsługiwać ma różne standardy wyglądu i działania. Aby aplikacja była przenośna nie należy zapisywać w niej na stałe określonego sposobu działania widgetów. Tworzenie określających te aspekty egzemplarzy klas w różnych miejscach aplikacji utrudnia późniejszą zmianę jej wyglądu i zachowania.
16 Wzorce projektowe cz. II 16/35 Fabryka abstrakcyjna Stosowalność: gdy system powinien być niezależny od sposobu tworzenia, składania i reprezentowania obiektów gdy system należy skonfigurować za pomocą jednej z wielu rodzin produktów gdy powiązane obiekty-produkty z jednej rodziny są zaprojektowane do wspólnego użytku i trzeba wymusić korzystanie z tych obiektów gdy programista chce udostępnić klasę biblioteczną produktów i ujawnić jedynie interfejsy, a nie implementacje
17 Wzorce projektowe cz. II 17/35 Fabryka abstrakcyjna Rysunek: Struktura budowy wzorca Fabryka abstrakcyjna
18 Wzorce projektowe cz. II 18/35 Fabryka abstrakcyjna Uczestnicy: AbstractFactory obejmuje deklarację interfejsu z operacjami tworzącymi produkty abstrakcyjne ConcreteFactory obejmuje implementację operacji tworzących produkty konkretne AbstractProduct obejmuje deklarację interfejsów dla produktów określonego typu ConreteProduct definiuje obiekt-produkt tworzony przez odpowiadającą mu fabrykę konkretną Client korzysta jedynie z interfejsów zadeklarowanych w klasach AbstractFactory i AbstractProduct
19 Wzorce projektowe cz. II 19/35 Fabryka abstrakcyjna Konsekwencje: Fabryka abstrakcyjna izoluje klasy konkretne. Fabryka abstrakcyjna ułatwia zastępowanie rodzin produktów. Fabryka abstrakcyjna ułatwia zachowanie spójności między produktami. Fabryka abstrakcyjna utrudnia dodawanie obsługi produktów nowego rodzaju.
20 Wzorce projektowe cz. II 20/35 Fabryka abstrakcyjna Przykład kodu c l a s s MazeFactory { p u b l i c : MazeFactory ( ) ; v i r t u a l Maze MakeMaze ( ) const { return new Maze ; } v i r t u a l Wall MakeWall ( ) const { return new Wall ; } v i r t u a l Room MakeRoom( i n t n ) const { return new Room( n ) ; } v i r t u a l Door MakeDoor (Room r1, Room r2 ) const { return new Door ( r1, r2 ) ; } } ;
21 Wzorce projektowe cz. II 21/35 Fabryka abstrakcyjna Przykład kodu Maze MazeGame : : CreateMaze ( MazeFactory& f a c t o r y ) { Maze amaze = f a c t o r y. MakeMaze ( ) ; Room r1 = f a c t o r y. MakeRoom ( 1 ) ; Room r2 = f a c t o r y. MakeRoom ( 2 ) ; Door adoor = f a c t o r y. MakeDoor ( r1, r2 ) ; amaze >AddRoom( r1 ) ; amaze >AddRoom( r2 ) ; } r1 >S e t S i d e ( North, f a c t o r y. MakeWall ( ) ) ; r1 >S e t S i d e ( East, adoor ) ; //... return amaze ;
22 Wzorce projektowe cz. II 22/35 Fabryka abstrakcyjna Przykład kodu c l a s s EnchantedMazeFactory : p u b l i c MazeFactory { p u b l i c : EnchantedMazeFactory ( ) ; v i r t u a l Room MakeRoom( i n t n ) const { return new EnchantedRoom ( n, C a s t S p e l l ( ) ) ; } v i r t u a l Door MakeDoor (Room r1, Room r2 ) const { return new RoomNeedingSpell ( r1, r2 ) ; } protected : S p e l l C a s t S p e l l ( ) const ; } ;
23 Wzorce projektowe cz. II 23/35 Metoda wytwórcza Przeznaczenie Określa interfejs do tworzenia obiektów, przy czym umożliwia podklasom wyznaczenie klasy danego obiektu. Metoda umożliwia klasom przekazanie procesu tworzenia egzemplarzy podklasom. Uzasadnienie W platformach klasy abstrakcyjne służą do definiowania i podtrzymywania relacji między obiektami. Platforma często odpowiada także za tworzenie obiektów.
24 Wzorce projektowe cz. II 24/35 Metoda wytwórcza Stosowalność: gdy w danej klasie nie można z góry ustalić klasy obiektów, które trzeba utworzyć, jeśli programista chce, aby to podklasy danej klasy określały tworzone przez nią obiekty, jeżeli klasy delegują zadania do jednej z kilku podklas pomocniczych, a programista chce zapisać w określonym miejscu informacje o tym, która z tych podklas jest delegatem.
25 Wzorce projektowe cz. II 25/35 Metoda wytwórcza Rysunek: Struktura budowy wzorca Metoda wytwórcza
26 Wzorce projektowe cz. II 26/35 Metoda wytwórcza Uczestnicy: Product definiuje interfejs obiektów generowanych przez metodę wytwórczą ConreteProduct obejmuje implementację interfejsu klasy Product Creator obejmuje deklarację metody wytwórczej zwracającej obiekty typu Product; może wywoływać metodę wytwórczą w celu wygenerowania obiektu Product ConreteCreator przesłania metodę wytwórczą, tak aby zwracała egzemplarz klasy ConcreteProduct
27 Wzorce projektowe cz. II 27/35 Metoda wytwórcza Konsekwencje: Zapewnienie punktów zaczepienia dla podklas Połączenie równoległych hierarchii klas
28 Wzorce projektowe cz. II 28/35 Metoda wytwórcza implementacja Sparametryzowane metody wytwórcze c l a s s C r e a t o r { p u b l i c : v i r t u a l Product C r e a t e ( P r o d u c t I d ) ; } ; Product C r e a t o r : : C r e a t e ( P r o d u c t I d i d ) { i f ( i d == MINE) return new MyProduct ; i f ( i d == YOURS) return new YourProduct ; // Powtarzanie d l a p o z o s t a l y c h produktow } return 0 ;
29 Wzorce projektowe cz. II 29/35 Metoda wytwórcza implementacja Wykorzystanie szablonów w celu uniknięcia tworzenia podklas c l a s s C r e a t o r { p u b l i c : v i r t u a l Product C r e a t e ( P r o d u c t I d ) ; } ; template <c l a s s TheProduct> c l a s s S t a n d a r d C r e a t o r : p u b l i c C r e a t o r { p u b l i c : v i r t u a l Product C r e a t e P r o d u c t ( ) ; } ; template <c l a s s TheProduct> Product StandardCreator <TheProduct >:: C r e a t e P r o d u c t ( ) { return new TheProduct ; }
30 Wzorce projektowe cz. II 30/35 MVC Model-View-Controller Model-Widok-Kontroler: Wzorzec architektury. Oparty o inne wzorce projektowe. Zawiera trzy rodzaje obiektów: model obiekt aplikacji, widok ekranowa reprezentacja modelu, kontroler definiuje sposób, w jaki interfejs użytkownika reaguje na operacje wykonywane przez użytkownika.
31 Wzorce projektowe cz. II 31/35 Model-Widok-Kontroler Przenosi tradycyjną architekturę aplikacji wsadowych: wejście-przetwarzanie-wyjście do środowiska aplikacji z interfejsem graficznym: kontroler-model-widok
32 Wzorce projektowe cz. II 32/35 Model-Widok-Kontroler Rysunek: Komunikacja we wzorcu MVC
33 Wzorce projektowe cz. II 33/35 Model-Widok-Kontroler Scenariusz: Użytkownik wpisuje tekst do okna: 1. Kontroler informuje model, aby ten przechował tekst wprowadzony przez użytkownika. 2. Model powiadamia wszystkie widoki o swojej zmianie. 3. Wszystkie widoki się przerysowują. 4. W czasie ponownego rysowania wszystkie widoki pytają model o wprowadzony tekst.
34 Wzorce projektowe cz. II 34/35 Model-Widok-Kontroler Rysunek: Diagram sekwencji dla wzorca MVC
35 Wzorce projektowe cz. II 35/35 W wykładzie wykorzystano materiały Gamma E. i in.: Wzorce projektowe, WNT, Warszawa 2005
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
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
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
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
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.
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
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 strukturalne cz. 1
Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter
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
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
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
WYKŁAD 11. Wzorce projektowe czynnociowe Iterator TemplateMethod
WYKŁAD 11 Wzorce projektowe czynnociowe Iterator TemplateMethod Behavioral Design Pattern: Iterator [obj] Zapewnia sekwencyjny dostp do elementów agregatu bez ujawniania jego reprezentacji wewntrznej.
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
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
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
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
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:
Wzorce projektowe kreacyjne
Wzorce projektowe kreacyjne Krzysztof Ciebiera 14 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawy Opis Ogólny Podstawowe informacje Wzorce kreacyjne sªu» do uabstrakcyjniania procesu tworzenia obiektów. Znaczenie
Wzorce prezentacji internetowych
Wzorce prezentacji internetowych 1. Model kontrolera widoku (Model View Controller). 2. Kontroler strony (Page Controller). 3. Kontroler fasady (Front Controller). 4. Szablon widoku (Template View). 5.
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
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
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
Architektura interfejsu użytkownika
Uniwersytet Jagielloński Interfejsy graficzne Wykład 3 Architektura interfejsu użytkownika Barbara Strug 2011 Hall of shame Hall of Shame Hall of Fame O czym dzisiaj Model Widok- Kontroler Hierarchia widoków
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
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
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
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
12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:
Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 1) Oprogramowanie to: 2) Produkty oprogramowania w inżynierii oprogramowania można podzielić na: 3) W procesie wytwarzania oprogramowania
Projektowanie oprogramowania: wzorce architektoniczne i projektowe
Projektowanie oprogramowania: wzorce architektoniczne i projektowe Ogólne zasady projektowania Nie staraj się zadziwić innych. Rzeczy oczywiste rób w sposób oczywisty. Nie rozmawiaj z nieznajomym. Projekt
Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)
Analiza i projektowanie obiektowe 2016/2017 Wykład 8: Przypisywanie obiektom odpowiedzialności (2) Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Wzorce
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
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.
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
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
Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych
Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.
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 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ół
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 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 03.03.2014 WYKŁAD 2 Elementy leksykalne Java Elementy
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
Język Java część 2 (przykładowa aplikacja)
Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa
Szablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC
Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:
Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego u ytku
Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego u ytku Autorzy: Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides T³umaczenie: Tomasz Walczak ISBN: 978-83-246-2662-5 Tytu³
MVC w praktyce tworzymy system artykułów. cz. 1
MVC w praktyce tworzymy system artykułów. cz. 1 Tworząc różnego rodzaju aplikacje natrafiamy na poważny problem utrzymania dobrej organizacji kodu przejrzystej oraz łatwej w rozbudowie. Z pomocą przychodzą
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło LATO 2007 Projektowanie Graficznych Interfejsów Użytkownika 1 UCD - User Centered Design 1) User Centered Design Projekt Skoncentrowany
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
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
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
UML cz. III. UML cz. III 1/36
UML cz. III UML cz. III 1/36 UML cz. III 2/36 Diagram współpracy Diagramy współpracy: prezentują obiekty współdziałające ze sobą opisują rolę obiektów w scenariuszu mogą prezentować wzorce projektowe UML
Język Java część 2 (przykładowa aplikacja)
Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa
Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych
Widoki zagnieżdżone, layout 1. Wprowadzenie Repozytoria danych Identyczne operacje na danych często się powtarzają np. pobierz książkę. Jeśli zapytanie realizowane jest za każdym razem w metodzie kontrolera
Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2
Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku
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
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
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
Projektowanie, tworzenie aplikacji mobilnych na platformie Android
Program szkolenia: Projektowanie, tworzenie aplikacji mobilnych na platformie Android Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Projektowanie, tworzenie aplikacji mobilnych
Przykładowa implementacja
Wzorce projektowe, cz. 10 Facade Fasada służy do ujednolicenia dostępu do złożonego systemu poprzez udostępnienie uproszczonego i uporządkowanego interfejsu programistycznego. Fasada zwykle implementowana
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,
Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.
Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,
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
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)
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
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ść
Wprowadzenie do systemów informacyjnych
Uwagi ogólne: Wprowadzenie do systemów informacyjnych Projektowanie obiektowe Obiektowość jest nową ideologią, która zmienia myślenie realizatorów SI z zorientowanego na maszynę na zorientowane na człowieka.
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
Forum Client - Spring in Swing
Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy
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
Wzorce projektowe warstwy danych
POLITECHNIKA GDAŃSKA WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Architektury Systemów Komputerowych Jarosław Kuchta Instrukcja do laboratorium z przedmiotu Projektowanie Aplikacji Internetowych
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ć
Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014
Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80
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
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Zofia Kruczkiewicz 1 Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa
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ść
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
(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
Metodyki zwinne wytwarzania oprogramowania
Metodyki zwinne wytwarzania oprogramowania Wykład 7 Marcin Młotkowski 23 listopada 2016 Plan wykładu 1 2 3 Kilka negatywnych przykładów Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania 2 /
Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Wykład 1 Inżynieria Oprogramowania
Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI
Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.
Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje
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
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
Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Abstrakcyjny typ danych
Abstrakcyjny typ danych Abstrakcyjny Typ Danych (abstract data type-adt): zbiór wartości wraz z powiązanymi z nimi operacjami; operacje są zdefiniowane w sposób niezależny od implementacji; operacje są
GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
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)
UML cz. II. UML cz. II 1/38
UML cz. II UML cz. II 1/38 UML cz. II 2/38 Klasy Najważniejsze informacje o klasie: różnica pomiędzy klasą a jej instancją (obiektem) na podstawie klasy tworzone są obiekty (instancje klasy) stan obiektu
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Podstawy programowania w Qt4
Podstawy programowania w Qt4 Rafał Rawicki 21 kwietnia 2007 Co to jest Qt? Zestaw bibliotek dla języka C++ oraz narzędzia roszerzające jego możliwości Ponad 400 klas Introspekcja oraz mechanizm sygnałów
(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
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
Modelowanie obiektowe
Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle
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
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?
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD