wzorce

WZORCE

  1. Diagramy przypadków użycia

Tworzenie przypadków użycia to technika stosowana w celu opisania wymagań tworzonego systemu informatycznego. Przypadek użycia przedstawia interakcję pomiędzy aktorem (użytkownikiem systemu), który inicjuje zdarzenie oraz samym systemem, jako sekwencję prostych kroków.

Opis ogólny, przypadek użycia powinien:

  1. Wzorce konstrukcyjne

Definicja: Wzorce te opisują proces tworzenia nowych obiektów, ich zadaniem jest tworzenie inicjalizacja oraz konfiguracja obiektów, klas oraz innych typów danych.

Przykład: Tworzenie obiektu domu. Jest to obiekt złożony z wielu części i jego budowa wymaga pewnych etapów. Każdy element może być wykonany inaczej, np. z nieco innych materiałów, według innego algorytmu (o tym decyduje budowniczy)

Fabryka abstrakcyjna różni się od budowniczego, tym, że kładzie nacisk na tworzenie produktów z konkretnej rodziny, a budowniczy kładzie nacisk na sposób tworzenia obiektów.

- Pozwala na dodawanie i usuwanie obiektów w czasie działania programu

- Przyspiesza kreowanie dużych obiektów

- kontrolowany dostęp do jednej instancji

- zredukowana przestrzeń nazw

- pozwala na zwiększenie dozwolonej ilości instancji

  1. Wzorce strukturalne

Definicja: Wzorce te opisują struktury powiązanych ze sobą obiektów.

Zastosowanie

- gdy klasa nie może być użyta, ponieważ ma niekompatybilny interfejs

- gdy nie mamy kodu źródłowego klas nie możemy zmienić ich interfejsu.

- wzorzec ten pozwala na „dekorowanie” zachowania klasy, czyli zmianę jej funkcjonalności bez potrzeby dziedziczenia

- jego działanie można upodobnić do dziedziczenia z tą różnicą, że dziedziczenie rozszerza zachowanie klasy w trakcie kompilacji a dekoratory rozszerzają klasy w czasie działania programu

Zalety:

- dostarcza prostszy interfejs do rozbudowanego systemu bez ograniczania jego funkcjonalności

- osłania klienta od złożoności komponentów podsystemu

- dostarcza „łącznik” pomiędzy podsystemem a jego klientami

Zalety:

- klient jednolicie wykonuje operacje na obiekcie złożonym i „prymitywnym”

- łatwo dodawać nowe rodzaje komponentów

Współpraca:

Klienci używają interfejsu z klasy Komponent w celu komunikowania się z obiektami występującymi w składanej strukturze. Jeśli odbiorca jest Liściem, to żądania są realizowane bezpośrednio. Jeśli natomiast odbiorca jest Kompozytem, to zwykle przekazuje żądania swoim komponentom-dzieciom, być może wykonując przed i/lub po przekazaniu dodatkowe operacje.

Zalety:

- umożliwia odseparowanie implementacji od interfejsu

- poprawia możliwość rozbudowy klas

- ukrywanie szczegółów implementacyjnych od klienta

Istnieją cztery rodzaje tego wzorca, które jednocześnie definiują sytuacje, w których może zostać użyty:

- wirtualny - przechowuje obiekty, których utworzenie jest kosztowne; tworzy je na żądanie

- ochraniający - kontroluje dostęp do obiektu sprawdzając, czy obiekt wywołujący ma odpowiednie prawa do obiektu wywoływanego

- zdalny - czasami nazywany ambasadorem; reprezentuje obiekty znajdujące się w innej przestrzeni adresowej

- sprytne odwołanie - czasami nazywany sprytnym wskaźnikiem; pozwala na wykonanie dodatkowych akcji podczas dostępu do obiektu, takich jak: zliczanie referencji do obiektu czy ładowanie obiektu do pamięci

Zalety:

- Niektórych programów nie da się napisać w sposób obiektowy bez stosowania wagi piórkowej.

- zmniejszenie wymagań pamięciowych programu

  1. Wzorce czynnościowe

Definicja: Wzorce te opisują zachowanie i odpowiedzialność współpracujących ze sobą obiektów.

Jego celem jest:

- usunięcie powiązania pomiędzy nadawcą i odbiorcą żądania

- umożliwienie wielu obiektom obsługi żądania

- komunikat przechowywany jest pomiędzy obiektami należącymi do pewnego zbioru zgodnie z precyzyjnie wyznaczoną trasą i kolejnością

- odpowiedzialność za przetworzenie komunikatu spada na obiekt, który jest do tego zadania najlepiej przygotowany

Niezmienna część algorytmu zostaje opisana w tzw. metodzie szablonowej, której nie wolno przesłaniać. W metodzie tej wywoływane są inne metody, reprezentujące zmienne fragmenty algorytmu. Metody te mogą być abstrakcyjne lub definiować domyślne zachowania. Programista, który chce skorzystać z algorytmu musi utworzyć podklasę klasy z metodą szablonową i przesłonić metody opisujące zmienne fragmenty.

Podstawowym elementem wzorca jest interfejs Command, deklarujący metodę execute(). Jest to polimorficzna metoda reprezentująca polecenie do wykonania. Metoda ta jest implementowana w klasach ConcreteCommand w postaci polecenia wykonania określonej akcji na obiekcie-przedmiocie Receiver. Klient nie jest bezpośrednio związany ani z obiektem Command, ani z obiektem inicjującym jego wywołanie, czyli Invoker. Widzi jedynie odbiorcę wyników operacji obiekt Receiver.

Zalety:

- możliwość łatwego dodawania kolejnych narzędzi


Wyszukiwarka

Podobne podstrony:
05 Wzorce długości i kąta
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
polak,miernictwo,Wzorce
Wzorce projektowe ściaga
Projektowanie zorientowane obiektowo Wzorce projektowe Wydanie II
Cechy dramatu Szekspira Odprawa posłów greckich przyczyny rozwoju renesansu stoicyzm Luteranizm wz
Wzorce osobowe w lit średniowiecza
JavaScript Wzorce
Wzorce behawioralne (1)
Wzorce strukturalne
Opracowania różnych tematów, Wzorce moralne człowieka w literaturze różnych epok , Wzorce moralne cz
wzorce parenetyczne
Prezentacja Wzorce
klasyfikacja narzedzi pomiarowych wzorce miar
J2EE Wzorce projektowe Wydanie 2
wzorce moralne to wzorce oparte na zasadach postepowania uz DE6H35KNB6GZIBCF5FZRFAIAGYCYH75OQXVNABA
cw1 wzorce

więcej podobnych podstron