Wzorce projektowe


Tworząc oprogramowanie ciągle spotykamy się z powtarzalnymi elementami. Niemal w każdym większym serwisie możemy spotkać takie elementy jak logowanie, edycja podstron etc. W celu ograniczenia powtarzalności tworzenia tych komponentów powstały gotowe klasy udostępniane na wolnej licencji czy frameworki mające odciążyć programistów od konieczności ich ponownego tworzenia. Elementy te mają pomóc programiście na etapie implementacji. Podobne zadanie tyle, że na poziomie projektowania mają wzorce projektowe.

Zadaniem wzorców projektowych (ang. design patterns) jest dostarczenie rozwiązań najczęściej powtarzających się problemów. Przykładowo projektując aplikację chcemy stworzyć mechanizm przechowujący dane, który będzie dostępny z każdego miejsca w systemie, czy też mechanizm informowania elementów systemu o zmianie swojego stanu. Wykorzystanie odpowiednich wzorców projektowych zdejmuje z nas obowiązek samodzielnego zaprojektowania rozwiązań powyższych problemów, dzięki czemu od razu możemy skupić się na ich implementacji.

W najbliższych notkach zajmę się opisaniem najpopularniejszych wzorców oraz w celu ich lepszego zrozumienia przedstawię przykłady ich wykorzystania występujące w dostępnych aplikacjach.


6 odpowiedzi do “Wzorce projektowe”

  1. Dobry pomysł, a jeśli chodzi o frameworki – mam nadzieję, że będziesz kontynuował opisywanie Kohany i przykłądy będą z nią powiązane.

  2. Coś krótka ta notka, nie wiele tutaj wyjaśniasz ;) Obecnie czytam książkę pt. „Wzorce projektowe” Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John. Książka genialna, świetnie opisuje wiele znanych i powszechnie wykorzystywanych wzorców. Co jednak mnie boli, objaśnia na C++ i Smaltalku, zamiast PHP. Mimo to można naprawdę wiele wynieść z tej książki.

    Możesz opisać wzorzec Kompozyt na przykładzie PHP, bo nie zrozumiałem. Byłbym wdzięczny ;)

  3. ciężko powiedzieć :) za pierwszą już się wziąłem, ale idzie strasznie powoli (dużo pracy :)), ale będę starał się, żeby jak najszybciej się pojawiła :)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *