Wzorce projektowe [ wstęp ]
|
|
- Łucja Zalewska
- 8 lat temu
- Przeglądów:
Transkrypt
1 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 of Building, New York: Oxford University Press, Ocena, czy dana budowla jest piękna, jest nie tylko kwestią smaku i subiektywnego punktu widzenia. Podlega weryfikacji w oparciu o mierzalne, zdefiniowane wielkości. Tymi wielkościami są wzorce projektowe. Co jest obecne w dobrym projekcie, a czego nie ma w złym (i vice versa)? Jakość projektu jest rzeczą podlegającą obiektywnej analizie i ocenie, zatem powinniśmy potrafić zdefiniować co dany projekt czyni dobrym lub złym. Potrzeba zatem przeanalizować różnego rodzaju struktury rozwiązujące ten sam problem. Odnajdując w różnych projektach wspólne części stanowiące dobre rozwiązanie, możemy zdefiniować te wspólne części jako wzorce. Wzorzec rozwiązanie problemu w danym kontekście Wzorzec zawsze ma nazwę i cel. Szukając właściwego wzorca należy wprost określić dany problem, sytuację do rozwiązania. Zaletą używania wzorców jest to, że można czerpać wprost z rozwiązania wypracowanego przez innych jako dobre (najlepsze) w danym zagadnieniu, unikając błędów. Zostały pomyślane jako zestaw sprawdzonych koncepcji architektonicznych Dzięki nim każdy miał mieć możliwość zbudować swój własny dom Wzorce Alexandra nie znalazły uznania wśród innych architektów
2 Wzorce projektowe [ programowanie ] Wzorce w programowaniu Wprowadzono je do inżynierii oprogramowania w 1995 ( Gang of Four banda czworga E. Gamma, R. Helm, R. Johnson, J. Vlissides Design Patterns: Elements of Reusable Object-Oriented Software ) Czym są wzorce projektowe? Rozwiązanie problemu w określony sposób Opisuje problem który się stale powtarza Stanowią abstrakcyjny opis zależności pomiędzy klasami Znaczna ich część stanowi obszerna dokumentacja opisująca sposób użycia wzorca Są łączone w celu rozwiązania bardziej złożonego problemu Algorytmy nie są wzorcami projektowymi jako że rozwiązują problemy obliczeniowe, a nie projektowe Klasyfikacja Konstrukcyjne - Strukturalne - Operacyjne
3 Wzorce projektowe [ systematyka ] Nazwa wzorca Odzwierciedla problem, rozwiązanie i konsekwencje danego wzorca Problem Opisuje zagadnienie i kontekst wystąpienia wzorca 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 Rozwiązanie Opisuje elementy tworzące projekt, ich relacje, odpowiedzialności oraz współpracę Konsekwencje Rezultaty zastosowania wzorca korzyści i straty Wzorce projektowe pomagają w realizacji zasady open-closed (sformułowanej przez Bertranda Meyera): moduły, metody i klasy powinny być otwarte na rozszerzenia, pozostając zarazem zamkniętymi na modyfikacje. Program należy tak projektować, żeby dało się powiększać jego funkcjonalność bez zmieniania programu (interfejsów).
4 Wzorce projektowe [ systematyka ] 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
5 Wzorce projektowe [ adapter ] Cel: dostosować (zaadaptować) istniejący obiekt do używanego interfejsu Problem: obiekt posiada właściwe atrybuty i zachowanie, ale inaczej zdefiniowany interfejs niż ten przez nas używany Rozwiązanie: Adapter dostarcza opakowanie wraz z pożądanym interfejsem, dzięki czemu pozwala na dopasowanie użycia istniejących obiektów do nowych klas Implementacja: poprzez zawarcie istniejącej klasy w nowej klasie, która wywołuje metody starej klasy Definicja GoF: Adapter konwertuje interfejs klasy na inny interfejs, oczekiwany (używany) przez klienta. Umożliwia dzięki temu współpracę klas, która w innym wypadku nie byłaby możliwa ze względu na niezgodność interfejsów.
6 Wzorce projektowe [ adapter - przykład ] Mamy system do rysowania różnych figur geometrycznych. Oparty jest on na klasie abstrakcyjnej Shape i wywodzących się z niej klasach konkretnych. Dostajemy zadanie dodać obsługę okręgu (circle) nowe wymaganie. Ktoś już napisał klasę realizującą nasze potrzeby, ale zupełnie innych nazwach metod (interfejs niezgodny z naszym). Kod już istnieje i nie chcemy go przepisywać od nowa. Chcemy użyć go w naszym systemie adapter!
7 Wzorce projektowe [ adapter - rozwiązanie ] Klasa Circle dziedziczy z klasy Shape dzięki temu mamy polimorficzne zachowanie Klasa Circle zawiera w sobie klasę XXCircle Klasa Circle przekazuje wywołania do klasy XXCircle, używając jej metod
8 Wzorce projektowe [ facade - fasada ] Cel: uprościć użycie istniejącego systemu poprzez prostszy interfejs Problem: system posiada złożony i skomplikowany interfejs, a my chcemy użyć tylko części z możliwości systemu, albo współpracować z systemem w jakiś jeden określony sposób Rozwiązanie: Fasada dostarcza nowy interfejs, specjalizowany (uproszczony, zredukowany) do (mniejszych, specyficznych) potrzeb użytkownika Implementacja: zdefiniuj nową klasę (klasy) z interesującym cię interfejsem i niech ona używa skomplikowany istniejący system Definicja GoF: Fasada dostarcza zunifikowany interfejs do zbioru interfejsów złożonego systemu, definiuje interfejs wyższego poziomu ułatwiający użycie systemu.
9 Wzorce projektowe [ fasada przykłady zastosowań ] Wzorca fasady użyjemy nie tylko do uproszczenia interfejsu, ale również do zredukowania liczby obiektów, z którymi musi współpracować klient. Przykładowo, klient, aby dostać informację o elemencie (Element) musi kolejno nawiązać połączenie z bazą danych, uzyskać z niej Model. Na podstawie modelu wysyła zapytanie o Element. Cała operacja byłaby prostsza gdyby napisać fasadę dla tych operacji na bazie danych. Wzorzec fasady może nie tylko redukować (upraszczać) interfejs, ale dodawać do niego jakąś nową funkcjonalność. Wzorca można użyć w przypadku chęci enkapsulacji systemu, np. za pomocą fasady można kontrolować wszystkie odwołania do systemu albo przewidywana jest możliwość zmiany systemu wtedy używany interfejs się dla klienta nie zmieni. Wreszcie fasadę pisze się jeśli koszt napisania nowej klasy (klas) jest mniejszy niż koszt szkolenia każdego z klientów na temat użytkowania całego oryginalnego systemu lub utrzymanie kodu fasady jest łatwiejsze (mniej kosztowne).
10 Wzorce projektowe [ adapter / fasada porównanie ] Oba wzorce oznaczają napisanie klasy opakowującej, ale posiadają kilka wyróżniających je cech: Fasada Adapter Czy istnieją klasy, w oparciu o które napisane zostaną wzorce? Czy musimy zaprojektować interfejs dla wzorca? Czy obiekt ma zachowywać się polimorficznie? Czy jest potrzebny prostszy interfejs? tak nie tak tak nie tak nie być może tak Fasada upraszcza interfejs, zaś Adapter konwertuje interfejs
11 Wzorce projektowe [ bridge - most ] Cel: rozdzielić zestaw implementacji od zbioru obiektów ich używających Problem: pochodne z klasy abstrakcyjnej muszą używać wielu różnych implementacji, nie powodując przy tym kombinatorycznej eksplozji wszystkich możliwości (połączenia wszystkich pochodnych z wszystkimi implementacjami) Rozwiązanie: zdefiniuj interfejs dla wszystkich implementacji i niech on będzie używany przez obiekty klas pochodnych z klasy abstrakcyjnej Implementacja: ukryj implementacje w bazowej klasie abstrakcyjnej (dla wszystkich implementacji), zaś w klasie abstrakcyjnej obiektów dostarcz uchwyt do klasy abstrakcyjnej implementacji Definicja GoF: Wzorzec mostu służy dokonaniu rozdziału pomiędzy abstrakcją a jej implementacją, tak że każda może zmieniać się niezależnie.
12 Wzorce projektowe [ most przykład ] Mamy napisać program, który będzie rysował prostokąty za pomocą dwóch różnych bibliotek graficznych, w momencie utworzenia konkretnego prostokąta jest wiadome, która biblioteka zostanie użyta do wizualizacji. Po zrealizowaniu tego zadania (lewa strona) okazuje się, że mamy dopisać możliwość rysowania okręgów (poniżej). Wymagania klienta bardzo często się zmieniają i nasz projekt powinien być na nie przygotowany według pomysłu po prawej, jesteśmy bliscy kombinatorycznej eksplozji! Co się stanie, jeśli trzeba będzie dodać jakąś trzecią bibliotekę graficzną?
13 Wzorce projektowe [ most przykład c.d. ] Problem w takiej realizacji wynika ze ścisłego powiązania realizacji abstrakcji (rodzaje kształtów) i implementacji (biblioteki graficzne). Każdy rodzaj kształtu musi wiedzieć którą bibliotekę używa do wizualizacji! Podejmujemy próbę innego zaprojektowania hierarchii dziedziczenia: Niestety w tym rozwiązaniu nadal mamy nadmiarowość w ilości klas opisujących prostokąty i okręgi, wizualizowane za pomocą różnych bibliotek graficznych. Szukając rozwiązania we wzorcach należy zwracać uwagę nie na to co zrobić ale kiedy oraz dlaczego to zrobić czyli spojrzeć na kontekst sytuacji.
14 Wzorce projektowe [ most przykład c.d. analiza problemu ] Jim Coplien: zlokalizuj gdzie rzeczy się mogą zmieniać ( commonality analysis ), a następnie określ jak się zmieniają ( variability analysis ). Wspólne części wyrażone zostaną przez klasę abstrakcyjną. Zmiany powinny znaleźć odzwierciedlenie w klasach konkretnych. Podstawowe reguły projektowania: 1. zidentyfikuj co się może zmieniać i ukryj to 2. preferuj kompozycję przed dziedziczeniem W naszym przykładzie mamy: różne typy kształtów i różne typy bibliotek graficznych. Wspólną ich częścią są zatem pojęcia kształty i biblioteki graficzne. Zatem klasa Shape zamknie w sobie część wspólną kształtów. Konkretne kształty muszą wiedzieć jak się narysować. Z kolei obiekty klasy Drawing są odpowiedzialne za to jak rysować linie, okręgi etc. Która klasa ma używać drugiej? Jeśli biblioteka graficzna miałaby bezpośrednio rysować kształty, to musiałaby coś wiedzieć o kształtach. To pogwałca podstawową regułę obiektowości: Obiekt odpowiada tylko za siebie!
15 Wzorce projektowe [ most rozwiązanie ] Obiekty klasy Shape używają obiektów klasy Drawing, nie wiedząc jaki dokładnie typ pochodny klasy Drawing jest użyty (w klasie abstrkacyjnej Shape odnosimy się do klasy bazowej Drawing). Zauważmy, że klasy V1Drawing i V2Drawing realizują wzorzec Adaptera, dostosowując interfejsy różnych bibliotek graficznych do interfejsu klasy Drawing. Takie połączenie (Adapter + inny wzorzec) jest często spotykane. Wzorzec mostu pozwala na wydzielenie implementacji jako czegoś zewnętrznego, używanego przez obiekty (pochodne klasy Shape), dając znacznie większą swobodę w ukrywaniu zmian w implementacji (np. dodanie kolejnej biblioteki graficznej).
16 Wzorce projektowe [ most strategie implementacji ] Ważna strategia dotycząca implementacji: one rule, one place Jeśli wiesz jak zrealizować daną rzecz, zaimplementuj ją raz. Odzwierciedleniem tego jest zwykle kod z większą ilością metod. Przykładowo, metoda draw() z klasy Rectangle mogłaby bezpośrednio wołać metodę drawline() z dowolnego obiektu klasy Drawing używanego przez klasę Shape. Lepiej jednak gdy umiejscawiamy daną strategię (tu: rysowanie za pomocą metod z Drawing) w jednym miejscu (tu: klasa Shape, która poprzez metody drawline() i drawcircle() odnosi się do takich metod w klasie Drawing). Z obiektowego punktu widzenia nasza realizacja wygląda następująco: W rzeczywistości to jest Rectangle lub Circle ale klient tego nie wie, bo oba wyglądają tak samo (obiekty klasy Shape) Realnie to jest V1Drawing lub V2Drawing, ale obiekt klasy Shape tego nie wie, bo oba wyglądają tak samo (obiekty klasy Drawing) Tu musi być odpowiedni typ obiektu, ale obiekt klasy Drawing używający go będzie wiedział który
17 Wzorce projektowe [ most realizowane zasady OOP ] obiekty są odpowiedzialne tylko same za siebie mamy różne rodzaje obiektów Shape, ale każdy z nich dba o to jak się narysować (metoda draw). Obiekty klasy Drawing dbają o rysowanie elementów składowych obiektów klasa abstrakcyjna realizujemy ogólną ideę za pomocą klasy, która nigdy nie będzie skonkretyzowana (klasa Shape reprezentująca wszystkie kształty) enkapsulacja poprzez klasę abstrakcyjną należy zrozumieć wielorakie znaczenie enkapsulacji: klient mający do czynienia z naszym wzorcem mostu będzie obsługiwał jakiś obiekt pochodny z klasy Shape, ale nie będzie znał jego typu (dla klienta będzie to po postu obiekt typu Shape), zatem dzięki takiej enkapsulacji dodanie jakiegoś nowego kształtu nie sprawi problemu klasa Drawing ukrywa różne swoje pochodne klasy przed obiektami klasy Shape jedna reguła, jedno miejsce klasa abstrakcyjna często posiada metody używane przez obiekty klas pochodnych, realizując ideę realizowania danej reguły (zadania) w jednym miejscu
18 Wzorce projektowe [ decorator - dekorator ] Cel: dynamicznie dodać jakąś funkcjonalność do obiektu Problem: używany obiekt realizuje podstawową funkcjonalność, którą chcielibyśmy uzupełnić o dodatkową funkcjonalność mającą miejsce przed lub po funkcjonalności własnej tego obiektu Rozwiązanie: pozwól na zrealizowanie dodatkowej funkcjonalności bez definiowania kolejnych klas pochodnych zawierających taki dodatek Implementacja: utwórz klasę abstrakcyjną reprezentującą zarówno klasę pierwotną jak i klasę z nowymi funkcjami do niej dodanymi (Decorator), w pochodnych klasy Decorator umieść wywołania dodatkowych metod, przed lub po metodzie pierwotnej Definicja GoF: Dekorator pozwala na dynamiczne dodanie dodatkowych odpowiedzialności do obiektu, stanowiąc plastyczną alternatywę dla kreowania pochodnych podklas realizujących dodatkową funkcjonalność.
19 Wzorce projektowe [ dekorator - przykład ] System drukowania biletów, które mają różne (dynamicznie zmienne) nagłówki i stopki. Zasadniczą częścią jest klasa SalesTicket z metodą prtticket() drukującą bilet bez nagłówka i stopki te są dodane poprzez klasę dekoratora. mycomp to wskaźnik do klasy Component, ustawiany przez konstruktory Klient używa wskaźnika do klasy Component. Wybór konfiguracji drukowania, np.: Component *ptr = new HeaderDecorator( new FooterDecorator( new SalesTicket() ) ); ptr->prtticket(); Właściwy obiekt (podlegający dekorowaniu ) zawsze kończy ten łańcuch.
20 Wzorce projektowe [ dekorator jeszcze jeden przykład ] kawiarnia rozwiązanie bez wzorca dekoratora prowadzi do eksplozji kombinatorycznej i kodu trudnego w utrzymaniu i rozwoju z dekoratorem uproszczenie i dynamizacja
21 Wzorce projektowe [ singleton ] Cel: obiekt występujący tylko raz ale nie jako obiekt globalny Problem: wiele różnych klientów chce mieć dostęp do tej samej rzeczy, a ty chcesz zagwarantować że ta rzecz jest dokładnie jedna Rozwiązanie: zagwarantuj dokładnie jedną instancję danej klasy (Singletonu) Implementacja: dodaj do klasy prywatne statyczne pole odwołujące się do pożądanego obiektu (początkowo ustawione na 0), dodaj metodę statyczną konkretyzującą obiekt (jeśli pole statyczne było 0) i / lub zwracającą referencję do obiektu jeśli wcześniej został już utworzony, zabezpiecz konstruktory (czyli uczyń je prywatne lub chronione), żeby nikt nie mógł ominąć statycznej metody powoływania obiektu do życia Definicja GoF: Singleton gwarantuje, że klasa ma tylko jedną instancję (istnieje jeden obiekt singleton dostarcza globalny sposób dostępu do niego).
22 Wzorce projektowe [ singleton przykład ] Singleton w bardziej ograniczonym przypadku klasa może określać, że w działającym programie powinien istnieć tylko jeden jej egzemplarz (jedyny obiekt klasy), przy każdej próbie utworzenia nowego obiektu klasy klient będzie zawsze otrzymywać ten sam obiekt class TClock { private: TClock(); static TClock *cp; public: static TClock* makeobject() { if (cp == 0) cp = new TClock(); return cp; } }; TClock *TClock::cp = 0; int main() { TClock *cp = TClock::makeObject(); TClock *cp2 = TClock::makeObject(); } pierwsze wywołanie funkcji makeobject() i sprawdzenie statycznej składowej równej 0 powoduje utworzenie obiektu każda kolejna próba utworzenia obiektu powoduje zwrócenie wskaźnika na ten sam obiekt (skoro już wcześniej został utworzony) wady statyczna dana składowa musi być zdefiniowana / zainicjalizowana przed użyciem jakiś inny kod musi być odpowiedzialny za usunięcie obiektu singleton
23 Wzorce projektowe [ abstract factory fabryka abstrakcyjna ] Cel: grupy obiektów dla pewnych klientów (lub zastosowań) Problem: grupy obiektów trzeba w jakiś sposób utworzyć Rozwiązanie: koordynuj tworzenie grupy obiektów dostarczając sposobu ich stworzenia z klienta, który będzie ich używał Implementacja: zdefiniuj klasę abstrakcyjną specyfikującą, które obiekty mają być tworzone i stwórz po jednej konkretnej klasie dla każdej rodziny (grupy) obiektów Definicja GoF: Fabryka abstrakcyjna dostarcza interfejs do tworzenia grup związanych ze sobą lub zależnych od siebie obiektów bez specyfikowania ich klas konkretnych. Klient nie wie którego konkretnie obiektu używa (np. ProductA1 czy ProductA2), nie wie nawet której fabryki użył do stworzenia obiektów (np. ConcreteFactory1 ale widzianej przez niego jako AbstractFactory)
24 Wzorce projektowe [ fabryka abstrakcyjna przykład ] Mamy napisać program, który będzie wyświetlał i drukował różne kształty pobrane z bazy danych. Program ma kontrolować używanie sterowników: niskiej rozdzielczości i wysokiej rozdzielczości, w zależności od komputera, na którym będzie wykonywany. W pierwszym podejściu można by napisać po prostu kod oparty o komendę switch i jakieś dane konfiguracyjne Komenda switch nierzadko wskazuje na możliwość wykorzystania abstrakcji: klasami abstrakcyjnymi będą sterowniki ekranu i sterowniki drukarki. Wadą tego rozwiązania jest to, że każda zmiana pociąga za sobą konieczność zmian w aplikacji kontrolującej ApControl, dlatego wprowadzimy dodatkowy obiekt fabrykę, dzięki któremu stworzymy właściwy typ sterowników.
25 Wzorce projektowe [ fabryka abstrakcyjna rozwiązanie ] ApControl odpowiada za właściwą współpracę z właściwymi obiektami (sterownikami). ResFactory odpowiada za to, które obiekty są tymi właściwymi (i tworzy je). ApControl nie musi się martwić tym czy obsługuje sterowniki wysokiej (HR) czy niskiej (LR) rozdzielczości, bo z oboma pracuje tak samo. W tym przypadku również często zdarza się, że dostosowanie interfejsów odbywa się poprzez wzorzec Adaptera. Fabryka abstrakcyjna dokonuje nowego rodzaju dekompozycji rozdziału odpowiedzialności. Używając jej oddzielamy: - tego kto używa poszczególnych obiektów (tu ApControl używająca sterowniki) od - tego kto decyduje który obiekt należy użyć (i tworzy go tu ResFactory)
26 Wzorce projektowe [ strategy strategia ] Cel: użycie różnych reguł biznesowych lub algorytmów, w zależności od występującego kontekstu Problem: wybór potrzebnego algorytmu zależy od zapotrzebowania klienta lub danych, na których się pracuje Rozwiązanie: odseparuj wybór algorytmu od implementacji algorytmu, wybór algorytmu może nastąpić w zależności od kontekstu Implementacja: mamy klasę używającą algorytmu (Context), zawierającą klasę abstrakcyjną (Strategy) posiadającą metodę specyfikującą jak wywołać algorytm, każda pochodna klasa implementuje wymagany algorytm Definicja GoF: Definiuje rodzinę algorytmów, kapsułkuje każdy z nich i czyni wymiennymi. Strategia pozwala algorytmom na zmiany niezależne od używających je klientów.
27 Wzorce projektowe [ template method metoda szablonowa ] Cel: mamy kilka różnych procedur postępowania, które wykonuje się zasadniczo tak samo za wyjątkiem tego, że każdy z etapów tych procedur robi te rzeczy w różny sposób, chcemy więc wydzielić szkielet algorytmu Problem: procedury są realizowane tak samo (mają takie same etapy), choć szczegóły implementacyjne etapów różnią się Rozwiązanie: określ co jest zmienne na poziomie etapów, wyodrębniając stałość i powtarzalność danej procedury Implementacja: stwórz klasę abstrakcyjną implementującą procedurę za pomocą abstrakcyjnych metod, metody te skonkretyzowane będą w konkretnych klasach pochodnych Definicja GoF: Definiuje szkielet algorytmu danej operacji, odraczając realizację niektórych kroków do podklas, umożliwia redefinicję etapów algorytmu bez zmiany struktury algorytmu.
28 Wzorce projektowe [ observer obserwator ] Cel: obserwujemy stan jednego obiektu a gdy ten się zmieni, wysyła informację do wszystkich obiektów zarejestrowanych jako obserwatorzy w celu wywołania metody aktualizującej je Problem: potrzebujemy zawiadomić zmienną ilość (listę) obiektów jeśli zaszło jakieś zdarzenie (zmiana stanu obserwowanego obiektu) Rozwiązanie: obserwatorzy delegują odpowiedzialność za monitorowanie zdarzenia do centralnej klasy Subject Implementacja: obserwatorzy są na liście posiadanej przez klasę Subject i kiedy nastąpi zdarzenie, następuje iteracja po liście wszystkich obserwatorów (wskaźniki do nich) i wywołanie ich metody update() Definicja GoF: Definiuje zależność wielu od jednego tak, że jeśli jeden obiekt zmienia stan, wszystkie zależne od niego są o tym poinformowane i odpowiednio zaktualizowane.
29 Wzorce projektowe [ observer przykład ]
30 Wzorce projektowe [ factory method metoda fabryczna ] Cel: zdefiniujmy interfejs do tworzenia obiektu, ale klasy konkretne zdecydują którą klasę zrealizować w postaci obiektu Problem: klasa chce stworzyć obiekt innej klasy, ale nie wie której, decyzję tą podejmuje klasa konkretna Rozwiązanie: klasa pochodna podejmuje decyzję obiekt której klasy zrealizować i w jaki sposób to zrobić Implementacja: w klasie abstrakcyjnej Creator użyj metody czysto wirtualnej, która ma zrealizować utworzenie obiektu, ale nie posiada wiedzy na temat tego jaki obiekt jest wymagany Definicja GoF: Definiuje interfejs do tworzenia obiektu, ale zleca jego tworzenie podklasom podjęcie decyzji obiekt której klasy utworzyć.
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
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
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
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. 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.
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
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
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
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
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
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
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
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 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
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
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ół
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
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
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 (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
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
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
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
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.
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
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 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
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
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
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
(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
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
(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
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 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?
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
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
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
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
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 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)
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 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,
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:
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
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 /
C++ Przeładowanie operatorów i wzorce w klasach
C++ i wzorce w klasach Andrzej Przybyszewski numer albumu: 89810 14 listopada 2009 Ogólnie Przeładowanie (przeciążanie) operatorów polega na nadaniu im nowych funkcji. Przeładowanie operatora dokonuje
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
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
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
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:
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
Wprowadzenie niektórych zagadnień OOP oraz wzorce operacyjne
Wprowadzenie niektórych zagadnień OOP oraz wzorce operacyjne ŁUKASZ KIEŁCZYKOWSKI 1 1. Wprowadzenie Wyobraźmy sobie, że jesteśmy firmą tworzącą oprogramowanie i dostaliśmy właśnie zlecenie na stworzenie
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ść
Programowanie Zespołowe
Programowanie Zespołowe Dobre Praktyki dr Rafał Skinderowicz mgr inż. Michał Maliszewski Parafrazując klasyka: Jeśli piszesz w Javie pisz w Javie - Rafał Ciepiela Principal Software Developer Cadence Design
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
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
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
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
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
Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:
Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów
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
Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:
Wzorce projektowe, cz. 2 Strategy Druga część z serii wpisów o wzorcach projektowych. Dziś omówię wzorzec Strategii (Strategy). Wstęp Strategia jest wzorcem projektowym, który definiuje rodzinę wymiennych
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Metodyki zwinne wytwarzania oprogramowania
Metodyki zwinne wytwarzania oprogramowania Wykład 7 Marcin Młotkowski 25 listopada 2014 Plan wykładu 1 Zasada pojedynczej odpowiedzialności 2 Marcin Młotkowski Metodyki zwinne wytwarzania oprogramowania
Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
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,
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
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
Interfejsy i klasy wewnętrzne
Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw
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
10. Programowanie obiektowe w PHP5
Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Wprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować
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
.NET Klasy, obiekty. ciąg dalszy
.NET Klasy, obiekty ciąg dalszy Przeciążanie operatorów 1 W języku C# istnieje możliwość zdefiniowania funkcjonalności dużej części operatorów dla typów stworzonych przez użytkownika. Dzięki takiemu zabiegowi,
Programowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Obiekty i klasy w Pythonie Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. III Jesień 2013 1 / 23 Klasy i obiekty Klasy w implementacji
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ść
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
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
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
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
Świat rzeczywisty i jego model
2 Świat rzeczywisty i jego model Świat rzeczywisty (dziedzina problemu) Świat obiektów (model dziedziny) Dom Samochód Osoba Modelowanie 3 Byty i obiekty Byt - element świata rzeczywistego (dziedziny problemu),
ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski
INFORMATYKA W ZARZĄDZANIU Wykład VI dr Jan Kazimirski jankazim@mac.edu.pl http://www.mac.edu.pl/jankazim MODELOWANIE SYSTEMÓW UML Literatura Joseph Schmuller UML dla każdego, Helion 2001 Perdita Stevens
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
Zaawansowane programowanie w języku C++ Programowanie obiektowe
Zaawansowane programowanie w języku C++ Programowanie obiektowe Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
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.
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
Rok akademicki: 2014/2015 Kod: IEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -
Nazwa modułu: Programowanie obiektowe Rok akademicki: 2014/2015 Kod: IEL-1-408-s Punkty ECTS: 5 Wydział: Informatyki, Elektroniki i Telekomunikacji Kierunek: Elektronika Specjalność: - Poziom studiów:
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
Projektowanie obiektowe. Roman Simiński Polimorfizm
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Polimorfizm Koncepcja polimorfizmu Słowo polimorfizm pochodzi od dwóch greckich słów: poly czyli wiele, morphos czyli
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
Pojęcie wzorca projektowego Sposób opisu wzorców projektowych Notacja UML podstawowe diagramy zapisu wzorców projektowych
Zagadnienia Pojęcie wzorca projektowego Sposób opisu wzorców projektowych Notacja UML podstawowe diagramy zapisu wzorców projektowych Co to jest wzorzec projektowy (ang. design pattern)? Co to jest wzorzec
Dziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
Języki i techniki programowania Ćwiczenia 3 Dziedziczenie
Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej
Klasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
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ć
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
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą