Wzorzec projektowy (informatyka).html

 
ca de en es fr it nl no pl pt ru ro fi sv tr vo


 

Ten artykuł dotyczy informatyki. Zobacz też: inne znaczenia wzorca projektowego.

Wzorzec projektowy (ang. Design pattern) – w inżynierii oprogramowania, uniwersalne, sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych problemów projektowych.

Spis treści

edytuj Historia

Koncepcję uchwycenia idei projektowych jako rodzaju wzorca przypisuje się zwykle amerykańskiemu architektowi nazwiskiem Christopher Alexander[1] [2]. Wzorce Alexandra zostały pomyślane jako zestaw sprawdzonych koncepcji architektonicznych służących konstruowaniu środowiska mieszkalnego i środowiska pracy zarówno dla jednostek jak i dla społeczności. W architekturze pomysł wzorców się nie przyjął.

Termin wzorca projektowego (ang. design pattern) został wprowadzony do inżynierii oprogramowania przez Kenta Becka około 1987 roku a następnie spopularyzowany w 1995 roku w książce Design Patterns autorstwa Gammy, Helma, Johnsona i Vlissidesa (zwanych zwykle "Bandą Czworga" lub "Bandą Czterech" - ang. Gang of Four)[3].

edytuj Wzorce rozwiązań

Wzorce projektowe najczęściej tworzone są w oparciu o programowanie obiektowe. Zakres tego pojęcia stał się problemem rozważanym od połowy lat 90. XX wieku. Ostatecznie ustalono, że algorytmy nie są wzorcami projektowymi, jako że rozwiązują problemy obliczeniowe, a nie projektowe. Wzorce często są łączone w celu rozwiązania bardziej złożonego problemu.

Zamiast skupiać się na funkcjonowaniu poszczególnych elementów, wzorce projektowe stanowią abstrakcyjny opis zależności pomiędzy klasami, co w efekcie doprowadza do pewnej standaryzacji kodu i czyni go bardziej zrozumiałym, efektywniejszym i mniej zawodnym. Wartość wzorców projektowych stanowi nie tylko samo rozwiązanie problemu, ale także dokumentacja, która wyjaśnia cel, działanie, zalety danego rozwiązania, co pomaga w łatwiejszym stosowaniu i adaptacji wzorców w danym zastosowaniu.

Wzorce projektowe mogą przyspieszyć proces rozwoju oprogramowania przez dostarczenie wypróbowanych rozwiązań dla problemów, które mogą nie być oczywiste na początku procesu projektowego. Często zagadnienia te wiążą się z ewolucją oczekiwań względem projektowanego systemu: rozszerzeniem jego funkcjonalności, zmianą sposobu i formatu wprowadzanych danych czy dostosowaniem aplikacji do różnych klas użytkowników. Nie uwzględnienie ich na początku procesu rozwoju produktu programistycznego powoduje często konieczność gruntownego przebudowywania zaawansowanego lub gotowego już oprogramowania.

edytuj Klasyfikacja

"Banda czworga" wyróżniła trzy typy wzorców:

edytuj Dokumentacja

Dokumentacja wzorca projektowego powinna zawierać dość informacji o rozwiązywanym problemie, kontekst w jakim należy go stosować, oraz sugerowane rozwiązanie. Różni autorzy mogą stosować odmienne style tworzenia takiej dokumentacji, ale zwykle jej najważniejsze elementy są do siebie podobne.

Jeden z najpopularniejszych układów opisu wzorca projektowego pochodzi od Bandy Czworga i został podzielony na następujące sekcje:

Nazwa wzorca projektowego oraz Klasyfikacja
Każdy wzorzec powinien posiadać opisową oraz unikatową nazwę, która pomaga w jego rozpoznaniu oraz odwoływaniu się do niego. Wzorzec powinien zostać zakwalifikowany zgodnie z pewnym schematem, np. takim, jak ten zaproponowany przez Bandę Czworga. Klasyfikacja ułatwia stosowanie wzorca.
Intencja
Opis celu, który stoi za wzorcem oraz powody jakimi się należy kierować podczas jego wyboru.
Inne nazwy wzorca
Wzorzec może mieć więcej niż jedną nazwę, co powinno zostać udokumentowane.
Motywacja
Scenariusz zawierający problem powiązany z kontekstem, w który wzorzec może być stosowany.
Stosowalność
Przedstawienie sytuacji, w której wzorzec jest użyteczny reprezentujące jego część związaną z kontekstem.
Struktura
Graficzna reprezentacja wzorca zwykle jako schematy UML dotyczące klasy oraz interakcji.
Elementy
Lista klas i obiektów stosowanych w tym wzorcu oraz ich znaczenie.
Powiązania
Opis wzajemnej interakcji klas i obiektów wykorzystywanych we wzorcu.
Konsekwencje
Przedstawienie skutków ubocznych oraz innych kosztów, które powoduje zastosowanie wzorca.
Implementacja
Prezentuje implementację wzorca reprezentując część wzorca związaną z rozwiązaniem. Przedstawienie technik stosowanych podczas praktycznego wykorzystania wzorca, sugeruje najlepsze drogi do udanej implementacji.
Przykładowy kod
Ilustracja jak wzorzec może zostać zastosowany w jednym z języków programowania.
Przykłady zastosowania
Znane przykłady zastosowania wzorca w rzeczywistych programach.
Związane wzorce
Odniesienie wzorca do innych, z którymi się wiąże przez wspólne stosowanie, lub można go z nimi zamienić oraz przedstawienie różnic w stosunku do podobnych wzorców.

edytuj Źródła

  1. Alexander, Christopher, The Timeless Way of Building, Oxford University Press, 1979, ISBN 978-0-19-502402-9.
  2. Alexander Christopher, Sara Ishikawa, Murray Silverstein, The Pattern Language: Towns, Buildings, Construction, Oxford University Press, 1977, ISBN 978-0-19-501919-3.
  3. Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1997, ISBN 978-0-201-63361-0 (Wyd. pol. Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, WNT, Warszawa, 2005, ISBN 83-204-3041-0).

edytuj Zobacz też

  • antywzorce - przykłady wzorców postępowania lub projektowania, których należy unikać

edytuj Linki zewnętrzne

Grzyby - Piękne włosy Porost włosów Genialne sposoby - Grzyby - Grzyby - Grzyby - Grzyby - Grzyby - Grzyby - załóż forum za darmo - prawdopodobnie najlepsze forum dyskusyjne - Grzyby - Skuteczne Pozycjonowanie Google - Grzyby - Grzyby - miłość o miłości obrazki