Design Patterns.: Visitor :.. Plan prezentacji 1. Trochę statystyk. 2. Zadanie problemowe. 3. Rozwiązanie… Visitor. 4. Visitor w UML (a,b,c). 5. Implementacja.

Slides:



Advertisements
Podobne prezentacje
Programowanie obiektowe
Advertisements

Inżynieria Oprogramowania
Klasy abstrakcyjne i interfejsy
Programowanie obiektowe PO PO - LAB 2 Wojciech Pieprzyca.
Klasa listy jednokierunkowej Przekazywanie parametrów do funkcji
Programowanie obiektowe
Programowanie obiektowe PO PO - LAB 4 Wojciech Pieprzyca.
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe PO PO - LAB 3 Wojciech Pieprzyca.
Modelowanie klas i obiektów
Klasy i obiekty.
Zaawansowane metody programowania – Wykład V
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Obiektowe metody projektowania systemów Design Patterns STRATEGY.
Programowanie w środowisku sieciowym
Kamil Łącki Dominik Strzelichowski
Programowanie obiektowe w Javie
Wzorce projektowe Paweł Ciach.
Szablony (wzorce) Przykład 1: Szablon klasy -
Licznik template<class Count_Type> class Count { public:
W ZORCE P ROJEKTOWE … czyli ktoś już rozwiązał Twoje problemy!
Obiektowe metody projektowania systemów
Obiektowe metody projektowania systemów
Obiektowe metody projektowania systemów Command Pattern.
Struktury.
C++ wykład 5 ( ) Dziedziczenie.
C++ wykład 6 ( ) Polimorfizm.
Projektowanie - wprowadzenie
Wzorce projektowe (Design Patterns)
Projektowanie obiektowe
UML 2.x Robert Pająk.
Podstawy programowania II
Projektowanie obiektowe
Programowanie obiektowe w C++
WPROWADZENIE W ŚWIAT OBIEKTÓW
Seminarium problemowe
Programowanie obiektowe
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Projektowanie obiektowe
Projekt i implementacja uogólnionego mechanizmu Java RMI
Programowanie obiektowe 2013/2014
Programowanie w języku C++
Dobry kod OO Jeżeli zapytamy statystycznego programistę z czym kojarzy mu się dobry kod OO to najprawdopodobniej będzie mówił o wzorcach projektowych.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Diagram klas Kluczowymi elementami są: klasy (class)
Programowanie strukturalne i obiektowe C++ Przeładowanie operatorów Robert Nowak.
Diagram klas Diagramy klas służą do obrazowania statycznych aspektów projektowanych systemów jako: Projekt struktury logicznej baz danych Projekt składników.
K URS JĘZYKA C++ – WYKŁAD 6 ( ) Polimorfizm.
OOP, Desing Patterns … and more Michał Dubel
Obiektowe metody projektowania systemów Adapter. Wstęp: „Dostosowanie interfejsu klasy do interfejsu, którego oczekuje użytkownik. Adapter umożliwia współprace.
Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)
Paweł Starzyk Obiektowe metody projektowania systemów
Wzorce Projektowe w JAVA
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
Wykład 8 Polimorfizm 1.Funkcje polimorficzne 2.Czyste funkcje wirtualne i klasy abstrakcyjne PO8-1 / 38.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Wzorce projektowe w C++ WWW: Jacek Matulewski Instytut Fizyki, UMK WWW:
Programowanie Obiektowe – Wykład 6
Inżynieria oprogramowania Wzorce projektowe
Wątki, programowanie współbieżne
Programowanie Obiektowe – Wykład 2
Podstawy informatyki Zygfryd Głowacz.
Zdarzenia (eventy) Zdarzenia służą do powiadomienia użytkownika, gdy w używanej klasie dojdzie do pewnych wydarzeń zdefiniowanych przez twórcę klasy.
PGO - Projektowanie i implementacja pierwszych klas
BYDGOSKI FESTIWAL NAUKI
PGO Dziedziczenie Michail Mokkas.
Zapis prezentacji:

Design Patterns.: Visitor :.

Plan prezentacji 1. Trochę statystyk. 2. Zadanie problemowe. 3. Rozwiązanie… Visitor. 4. Visitor w UML (a,b,c). 5. Implementacja (a,b,c,d). 6. Diagram stanów 7. Gdzie gościł „Visitor”?

1.Trochę statystyk Singleton Proxy Facade Strategy Command Visitor

2. Zadanie problemowe Jedna struktura danych stanowi podstawę dla wielu nie związanych ze sobą zadań. Metody których zadań należy uwzględnić w elementach struktury? Przypisanie wielu różnych funkcjonalnie metod do jednej klasy 

3. Rozwiązanie … Visitor Visitor Reprezentuje operację, którą możemy wykonać na elementach pewnej obiektowej struktury. Pozwala na zdefiniowanie nowej operacji bez konieczności ingerencji w klasy, na których operuje.

4.a. Visitor w UML Pierwotna struktura…

4.b. Visitor w UML …oraz metody w nowej szacie…

4.c. Visitor w UML …stanowią gotowy wzorzec

5.a. Implementacja class Node { public: virtual ~Node(); virtual void Accept(class Visitor&)=0; protected: Node(){}; };

5.b. Implementacja… class AssignmentNode : public Node { public: AssignmentNode(); virtual void Accept(class Visitor& v) { v.VisitAssignment(this); }; class VariableNode : public Node { public: VariableNode(); virtual void Accept(class Visitor& v) { v.VisitVariableRef(this); } };

5.c. Implementacja… class Visitor { public: virtual void VisitAssignment(class AssignmentNode*)=0; virtual void VisitVariableRef(class VariableNode*)=0; protected: Visitor(){}; };

5.d. Implementacja! class TypeCheckingVisitor : public Visitor { public: TypeCheckingVisitor(); virtual void VisitAssignment(class AssignmentNode*){/* kod */}; virtual void VisitVariableRef(class VariableNode*){/* kod */}; }; class CodeGeneratingVisitor : public Visitor { public: CodeGeneratingVisitor(); virtual void VisitAssignment(class AssignmentNode*){/* kod */}; virtual void VisitVariableRef(class VariableNode*){/* kod */}; };

6. Diagram stanów

7. Gdzie „gościł” Visitor? Smalltalk-80 (ProgramNodeEnumerator) IRIS Inventor

Na deser…

KONIEC