Wzorce projektowe

Koziołek

Wzorce Projektowe (DP - ang. Design Patterns) stanowią grupę sprawdzonych w praktyce, uniwersalnych i skutecznych sposobów rozwiązania często pojawiających się problemów.

Historia

Koncepcja wzorca wywodzi się z architektury. Zrodziła się w połowie lat siedemdziesiątych XX wieku w pracach amerykańskiego architekta Christophera Alexandera. Pokazał on w swoich publikacjach[#]_ [#]_ sposoby rozwiązania często pojawiających się problemów projektowych. Zauważył on, że istnieje bardzo duża grupa problemów, z którymi spotykamy się w każdym projekcie. Chcąc przyspieszyć prace nad projektem zaproponował on stworzenie katalogu standardowych, uniwersalnych i dobrych rozwiązań. Czyli właśnie wzorców projektowych.
W inżynierii oprogramowania wzorce zostały wprowadzone w książce Design Patterns autorstwa E. Gammy, R. Helma, R. Johnsona i J.Vlissidesa (zwanych zwykle "bandą czworga" - ang. Gang of Four)[#]_. Przedstawili oni zestaw rozwiązań, wzorców, popularnych problemów pojawiających się w programowaniu (całość w Smalltalk). Zaproponowali też podział wzorców na grupy, ale obecnie jest kilka różnych sposobów podziału wzorców.

Antywzorce

Wraz z rozwojem wzorców powstało też pojęcie antywzorca, czyli rozwiązania "najgorszego z możliwych". Antywzorce są zazwyczaj wynikiem niewiedzy, a co za tym idzie "wymyślania koła na nowo". Do dobrych praktyk należy unikanie antywzorców.

Uwagi

Chcąc zachować porządek w tematach należy opisywać zworce według pewnego szablonu.

  • Nazwa wzorca i/lub inne nazwy
  • Klasyfikację według GoF i/lub innej metodyki
  • Schemat UML
  • Stosowalność - opis problemu
  • Opis implementacji
  • Koszty i problemy
  • Powiązane wzorce
  • Przykłady implementacji w różnych językach

Linki

Przypisy

.. [#] Alexander, C., The Timeless Way of Building, Oxford University Press 1979
.. [#] Alexander C., Sara Ishikawa, Murray Silverstein, The Pattern Language: Towns, Buildings, Construction, Oxford University Press 1977
.. [#] Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley 1997, ISBN 83-204-3041-0

</span>

NULL Object

  • 2010-09-25 23:47
  • 0 komentarzy
  • 2975 odsłon

Łańcuch konstruktorów

  • 2008-11-18 17:45
  • 0 komentarzy
  • 6504 odsłony

Singleton

  • 2011-08-23 22:29
  • 6 komentarzy
  • 23673 odsłony

4 komentarzy

Wierzę jednak, że ktoś ma pojęcie o rekursji ogonowej, która już taka zła nie jest.

chyba, że uczą tego po to, by pokazać, że dany problem można rozwiązać na kilka sposobów. No i wyciągnąć wnioski, który jest szybszy. Ogólnie to głupota z tą silnią, algorytm liczący silnię ma dwie linie kodu, więc po co się bawić z rekurencją...? Ciekawie dziś nauczają... :]

niekoniecznie. to jest świetny przykład na porównanie rekurencji i pętli. To że później nie nalezy stosować to inna sprawa.

Antywzorzec to będzie chyba nauczany w szkołach i na uczelniach rekurencyjny algorytm liczenia silni ;]