Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


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

1 Design Patterns.: Visitor :.

2 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”?

3 1.Trochę statystyk Singleton Proxy Facade Strategy Command Visitor

4 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 

5 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.

6 4.a. Visitor w UML Pierwotna struktura…

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

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

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

10 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); } };

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

12 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 */}; };

13

14 6. Diagram stanów

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

16 Na deser…

17 KONIEC


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

Podobne prezentacje


Reklamy Google