„Po co wymyślać koło na nowo?” – to znane z życia codziennego powiedzenie aktualne jest także podczas realizacji projektów IT. Mądrzy ludzie projektujący systemy informatyczne zauważyli na przestrzeni wielu lat swojej pracy, że spora część problemów projektowych się powtarza. Zamiast więc za każdym razem wymyślać koło na nowo, niektórzy z nich opracowali uniwersalne rozwiązania – tzw. wzorce projektowe.
Co to jest wzorzec projektowy?
Wzorzec projektowy to uniwersalne, sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych problemów projektowych. Pokazuje powiązania i zależności pomiędzy klasami oraz obiektami systemu i ułatwia tworzenie, modyfikację oraz pielęgnację kodu źródłowego. Jest opisem rozwiązania, a nie jego implementacją. Wzorce projektowe stosowane są w rozwiązaniach wykorzystujących programowanie obiektowe.
Pierwsze wzorce projektowe zaproponował Christopher Alexander w swojej książce o… architekturze (Alexander była architektem, takim od budynków ;)):
„Wzorzec opisuje problem, który powtarza się wielokrotnie w danym środowisku, oraz podaje istotę jego rozwiązania w taki sposób, aby można było je zastosować miliony razy bez potrzeby powtarzania tej samej pracy”
Christopher Alexander „A pattern language”, 1977
Jak widać definicja świetnie nadaje się jednak do zastosowania w każdym środowisku, także w IT. I tak jak w architekturze wzorce projektowe nie do końca się przyjęły, tak już w świecie technologii stały się obowiązującym standardem. Zaproponowane przez Kenta Becka oraz Warda Cunninghama w 1987 roku, dogłębnie opracowane i rozpropagowane przez tzw. Bandę Czterech (Gang of four) szybko stały się podstawowym narzędziem w rękach analityka, projektanta, programisty systemów IT.
Zalety stosowania wzorców projektowych
Czy warto poznać wzorce projektowe i je stosować? Mam nadzieję, że te kilka podpunktów Cię do tego przekona:
- opisują rozwiązania często powtarzających się problemów,
- pozwalają uniknąć typowych błędów,
- wyjaśniają rozwiązanie problemu,
- poznanie wzorców – może zainspirować do zastosowania nowych (potencjalnie lepszych) rozwiązań w tworzonych aplikacjach,
- są omawiane na przykładach implementacji w popularnych językach programowania,
- rozwiązują problemy spotykane w rzeczywistym świecie, w codziennej pracy przy systemach IT,
- bazują na doświadczeniach nabytych w przeszłości.
Jak wygląda wzorzec projektowy?
Wzorce projektowe zapisuje się zwykle w ujednolicony, strukturalny sposób. Ułatwia to ich późniejsze wykorzystanie. Każdy wzorzec powinien być opisany przynajmniej przez 4 elementy:
- nazwa wzorca
- opis problemu – prezentuje problem, który dany wzorzec projektowy rozwiązuje. Pokazuje także w jaki sposób zidentyfikować sytuacje, w których jest on możliwy do zastosowania.
- opis rozwiązania – zaprezentowanie opisu rozwiązania problemu przedstawione w poprzednim punkcie.
- konsekwencje – analiza wad oraz zalet zastosowania wzorca w projekcie.
Przykład wzorca projektowego możecie znaleźć tutaj: Wzorzec Singleton, a przygotowany przez wydział ETI Politechniki Gdańskiej darmowy katalog wzorców projektowych tutaj: Katalog wzorców projektowych.
Nie tylko wzorce projektowe
Systemy IT to szalenie złożone twory, dlatego pracujemy nad nimi zwykle na kilku poziomach abstrakcji: analizy, komponentów/podsystemów, klas, języka programowania. Dlatego wzorce projektowe są tylko jednym z czterech rodzajów wzorców, które są wykorzystane w inżynierii oprogramowania.
Bardziej ogólnie wzorce nazywane są wzorcami rozwiązań i klasyfikujemy je w 4 typach wzorców:
- wzorce analizy – poziom opisu rzeczywistości
- wzorce architektonicznie – poziom integracji komponentów, np. wzorzec MVC
- wzorce projektowe – poziom interakcji pomiędy klasami
- wzorce implementacyjne – poziom języka programowania
Nie wymyślaj koła na nowo!
Nie ma sensu wymyślać koła na nowo. Tylko głupiec nie korzysta z doświadczeń, które pozostawili po sobie inni. Dlatego polecam wszystkim zapoznanie się z najważniejszymi wzorcami projektowymi, jaki i innymi wzorcami rozwiązań. Jeśli nawet nie wykorzystasz ich jeden do jednego w swojej pracy, to na pewno poznasz duuużoo dobrych praktyk i zdobędziesz sporą inspirację do rozwiązywania nowych problemów.
0 komentarze “Wstęp do wzorców projektowych”
truizmy. nic nowego niestety…
Dla wielu osób czytających tego bloga jest to ciekawa informacja, dzięki której dowiadują się o istnieniu wzorców projektowych i możliwości ich wykorzystania. Jeśli jest Pan zaawansowany w tym temacie, zapraszamy do podzielenia się swoją wiedzą – z chęcią opublikujemy artykuł wnoszący nowe informacje.
Link „Katalog wzorców projektowych” odwołuje się do nieistniejącego zasobu …
Pozdrawiam
Dobry wstęp do wzorców projektowych. Jeśli ktoś chce poznać jeden z wzorców jakim jest strategia to na http://www.javadeveloper.pl/wzorzec-projektowy-strategia znajdzie fajny opis z przykładami w Javie.