• Nie Znaleziono Wyników

.: Visitor :. Design Patterns

N/A
N/A
Protected

Academic year: 2021

Share ".: Visitor :. Design Patterns"

Copied!
17
0
0

Pełen tekst

(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

(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:

(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…

http://www.dofactory.com/Patterns/Patterns.aspx#list

http://www.swe.uni-linz.ac.at/research/deco/designPatterns/Visitor/

www.wikipedia.org

(17)

KONIEC

Cytaty

Powiązane dokumenty

projektem metodą Earned Value pozwala wszystkim udziałowcom projektu (inwestor, właściciele i akcjonariusze, sponsorzy projektu, instytucje finansowe, project manager i

Tytuł: REHABILITACJA

Rewolucja, tradycyjnie oznaczająca „zmianę, obejmującą wszystkie dziedziny życia, w szczególności zaś gruntowną zmianę stosunków społecznych” 5 , w popularnych

Przy typowaniu z³ó¿ ropy naftowej, w których mo¿na zastosowaæ metodê mieszaln¹ zat³aczania ditlenku wêgla wykorzystuje siê nastêpuj¹ce parametry: g³êbokoœæ zalegania

klasa I Liceum oraz I Technikum Historia „Zrozumieć przeszłość.. „Nowa

Dane pochodzące z licznych przeprowadzonych w czasie wielu lat badań wskazują, że masa ciała do- datnio koreluje z gęstością mineralną kości (BMD, bone mineral density), a

The following paper examines different concepts of design pattern languages from the original one in architecture, through the most popular pattern concepts in

Warto przypo- mnieć, że także deprywacja snu pozwala na szybkie i wyraźne zmniejszenie nasilenia objawów depresji u około 60% chorych, w praktyce metoda jest jednak niezbyt uży-