Wzorce w skrócie: wprowadzenie

Wzorce w skrócie: wprowadzenie

Tak jak na każdym innym blogu o tematyce IT, tak i tutaj nie może zabraknąć artykułów przedstawiających wzorce projektowe. Będzie to też cykl naturalnie łączący się z Java HR: ściąga na rozmowę rekrutacyjną, ponieważ na prawie każdej rozmowie rekrutacyjnej na stanowisko programisty (z pewnością nie tylko Javy) pada pytanie Jakie zna Pan wzorce projektowe? Proszę wymienić kilka i opisać.

Po zapoznaniu się z treścią kilku artykułów z tej serii odpowiedź nie będzie już problemem.

Powstało już wiele książek, artykułów czy też całych dedykowanych stron internetowych na ten temat, w tym moja ulubiona – Refactoring Guru, gdzie każdy z popularnych wzorców opisany jest w sposób bardzo szczegółowy, a jednocześnie czytelny i przystępny dla osób, które nigdy się z danym patternem nie spotkały.
Wiele materiałów na ten temat można znaleźć także w języku polskim.

Ja natomiast postaram się opisać je przede wszystkim pod kątem praktycznym, opierając się na doświadczeniu wyniesionym z kilku większych projektów napisanych w Javie (wszystkie przykłady będą też w tym języku).
Uproszczę przy tym niektóre koncepcje tych wzorców na tyle, aby w kilku zdaniach przybliżyć ich najważniejsze idee i przyczyny, dla których w ogóle powstały i w jakich sytuacjach powinny zostać użyte.

Stąd też nazwa cyklu – Wzorce w skrócie.

Czym jest wzorzec projektowy?


Definicja pochodząca z Wikipedii sprawnie opisuje zagadnienie:

Wzorzec projektowy (ang. design pattern) – 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 i ułatwia tworzenie, modyfikację oraz pielęgnację kodu źródłowego.

Właśnie tym jest wzorzec projektowy – zwykle opisuje charakterystyczny sposób rozwiązania jakiegoś problemu programistycznego lub architektonicznego w programie. Jest instrukcją implementacji pewnych reużywalnych rozwiązań, które mogą okazać się przydatne przy tworzeniu programu. Dużą ich zaletą jest fakt, że popularne wzorce są znane też innym programistom, przez co taki kod będzie dla kogoś innego jasny i czytelny już na pierwszy rzut oka. Korzystanie z wzorców projektowych jest jednym z elementów tzw. dobrych praktyk programowania.

Lista wzorców


Wzorce dzielimy pod kątem ich odpowiedzialności:

Kreacyjne – opisują specyficzny sposób tworzenia nowych obiektów

  • Factory method
  • Abstract factory
  • Builder
  • Prototype
  • Singleton

Strukturalne – opisują wzajemne relacje poszczególnych komponentów programu

  • Adapter
  • Bridge
  • Composite
  • Facade
  • Flyweight
  • Proxy

Behawioralne – opisują konkretne schematy zachowań i komunikacji między obiektami

  • Chain of Responsibility
  • Command
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template method
  • Visitor

Informatyk, programista. Obecnie Java Developer (Web Fullstack), właściciel studia Berrygames oraz prezes koła TK Games na Politechnice Wrocławskiej.

Wszystkie artykuły autora>>

Dodaj komentarz