Chain of Responsibility



Pobieranie 3,65 Mb.
Strona1/34
Data02.12.2017
Rozmiar3,65 Mb.
  1   2   3   4   5   6   7   8   9   ...   34


Proseminarium


Badanie możliwości i opracowanie przykładów projektowania oprogramowania za pomocą wzorców projektowych czynnościowych w .NET


Prowadzący:

prof. dr hab. inż

Włodzimierz Khadzhynov

Wykonawcy:

Grzegorz Borecki

Jakub Kalita

Rok akademicki:

2007/2008

Semestr:

X

Spis treści:

Chain of Responsibility 3

Przykład 1. SimpleChain 4

Przykład 2. Bank 5

Przykład 3. MapPrinter 8

Command 10

Przykład 1 Simple Command 11

Przykład 2 Delegate Command 13

Iterator 14

Przykład 1 MonthCollection 14

Przykład 2 Generic Collection 16

Przykład 3 MultiEnumerator 17

Mediator 18

Przykład 1 Simple Mediator 19

Przykład 2 Mediator 2 22

Observer 23

Przykład 1 Observer Example 24

Strategy 27

Przykład 1: 28

Przykład 2. 30

State 32


Przykład 1: 33

Przykład 2: 35

Template Method 37

Przykład: 37

Visitor 39

Przykład: 40

Interpreter 42

Przykład: 43

Memento 44

Przykład 1: 45

Przykład 2: 48

Podsumowanie 49




Chain of Responsibility





Rys. Idea działania wzorca Chain of Responsibility (CoR).
Działanie wzorca Chain of Responsibility jest oparte na współpracy zbioru obiektów wykonujących pewną akcję ( Handler ). Elementy zbioru są połączone ze sobą w łańcuch w taki sposób, że każdy obiekt posiada wskaźnik na obiekt następny, który stoi wyżej w hierarchii obiektów. Każdy Handler posiada ograniczenie, zgodnie z którym ustala czy powinien wykonać akcję, czy przekazać jej wykonanie do następnego Handlera, którego ograniczenie jest mniejsze. W ten sposób akcja, jest przekazywana w górę łańcucha, na którego końcu może być wykonane działanie domyślne lub zgłoszony wyjątek.
W podstawowej postaci wzorzec jest realizowany poprzez implementację interfejsu

( IHandler ) przez wiele obiektów ( Handler ). Interfejs zapewnia implementację metody obsługującej żądanie ( Request() ) oraz istnienie pola wskazującego na następny obiekt



( successor ). Klient odwołując się do metody Request() wywołuje ją na rzecz obiektu stojącego na dole hierarchii. Następnie żądanie jest obsługiwane lub przekazywane w górę łańcucha w zależności od tego czy spełnia ono odpowiednie kryterium. Może ono przybierać różną formę w zależności od potrzeb np:

  • skomplikowania żądania,

  • ograniczenia sprzętowe,

  • przyjęta taktyka,





  1   2   3   4   5   6   7   8   9   ...   34


©operacji.org 2019
wyślij wiadomość

    Strona główna