Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Obiektowe metody projektowania systemów Design Patterns STRATEGY.

Podobne prezentacje


Prezentacja na temat: "Obiektowe metody projektowania systemów Design Patterns STRATEGY."— Zapis prezentacji:

1 Obiektowe metody projektowania systemów Design Patterns STRATEGY

2 Wstęp: Strategy (strategia): - należy do tzw. behawioralnych wzorców projektowych, czyli charakteryzujących oddziaływania pomiędzy obiektami. - ma za zadanie zdefiniowanie rodziny algorytmów i rozdzielenie ich tak aby działały zależnie od potrzeb klienta

3 Plan: Zastosowanie Struktura Kosekwencje (zalety i wady) Implementacja Przykład kodu Zakończenie

4 Zastosowanie Strategię stosujemy jeśli: Wiele powiązanych klas różni się tylko zachowaniem. Potrzeba kilku wariantów algorytmu. Algorytm używa danych o których klient nie powinien wiedzieć. Klasa definiuje wiele zachowań jako wielokrotne instrukcje warunkowe.

5 Struktura

6 Struktura - powiązania Klasy Strategy i Context współdziałają aby zaimplementować wybrany algorytm. Context przekazuje żądanie klienta do odpowiedniej strategii.

7 Konsekwencje Zalety Strategia pozwala utworzyć rodziny powiązanych algorytmów. Hermetyzacja algorytmów w oddzielnych klasach pozwala na ich modyfikację niezależnie od kontekstu, zwiększa czytelność, oraz łatwość rozbudowy. Eliminuje instrukcje wyboru (warunkowe).

8 Konsekwencje Wady Klient musi być świadomy różnych algorytmów, aby mógł wybrać właściwy. Nadmiarowa komunikacja pomiędzy Strategy i Context. Zwiększona liczba obiektów.

9 Implementacja Interfejsy klas Context i Strategy Strategia jako szablon Strategia jako rozwiązanie opcjonalne

10 Przykładowy kod 1 class Composition { private: Compositor* compositor1; Component* components1; int lineWidth; public: Composition(Compositor*); void Repair(); };

11 Przykładowy kod 2 class Compositor { public: virtual int Compose(int lineWidth) = 0; protected: Compositor(); }; Class SimpleCompositor : public Compositor { public: SimpleCompositor(); int Compose(int lineWidth); //... }; class TeXCompositor : public Compositor { public: TeXCompositor(); int Compose(int lineWidth); //... };

12 Przykładowy kod 3 void Composition::Repair () { int breakCount; breakCount = compositor1->Compose(lineWidth); } Composition* quick = new Composition(new SimpleCompositor); Composition* slick = new Composition(new TeXCompositor);

13 Podsumowanie: Strategia umożliwia zdefiniowanie rodziny algorytmów realizujących to samo zadanie, ale różniących się implementacją Strategia zwiększa czytelność programu i ułatwia jego późniejszą modyfikację.

14 Bibliografia: Stroustrup B.: The C++ Programming Language, Addison-Wesley, 2004 Shalloway A., Trott J.R.: Projektowanie zorientowane obiektowo. Wzorce projektowe, Helion 2002 Gamma E., Helm R., Johnson R., Vlissides R.:Design Patterns: Elements of Reusable Object-Oriented Software

15 Fin


Pobierz ppt "Obiektowe metody projektowania systemów Design Patterns STRATEGY."

Podobne prezentacje


Reklamy Google