Wstęp do wzorców projektowych

9 października 2013

“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.

Cześć, jestem Hania.

Jako strategiczny analityk biznesowy na pograniczu zarządzania i IT zapewniam, że projekty i działania w organizacji przynoszą wartość biznesową. Dostarczam kompetencji analitycznych managerom i zarządom z Polski, Niemiec i Szwajcarii przy tworzeniu strategii oraz wdrażaniu jej w kilkuset osobowej międzynarodowej organizacji.

Może zaciekawi Cię także:

www.analizait.pl by ProjectUP (C) 2020