Jaka jest różnica między wzorami projektowania obiektowego a zasadami? Czy to są różne rzeczy? O ile rozumiem, obaj starają się osiągnąć jakiś wspólny cel (np. Elastyczność). Czy mogę więc powiedzieć, że wzór jest zasadą i odwrotnie?
Zasada projektu = SOLID (tj. Zasada inwersji zależności)
Wzór projektowy = Gof (tj. Abstrakcyjny wzór fabryczny)
źródło
Te pojęcia nie są takie same:
* Zasada projektowania: * Zasady projektowania oprogramowania stanowią zbiór wytycznych, które pomagają nam uniknąć złego projektu. jak: Zasada otwartego zamknięcia
* Wzorzec projektowy: * Wzorzec projektowy jest ogólnym rozwiązaniem wielokrotnego użytku dla często występującego problemu w danym kontekście w projektowaniu oprogramowania. Jak: Singleton
źródło
Wzorce są zgodne z zasadami, jakie są implementacje wzorców.
Zasadą byłaby „pośrednia”, którą można by osiągnąć poprzez wzorzec „fabryczny”, który ostatecznie jest implementowany jako klasa metodami fabrycznymi.
źródło
Zasady są zasadami, a wzorce są ich konkretnymi przykładami.
źródło
Wzory są bardziej rzeczami wyższego poziomu niż zasadami. Wzorce rozwiązują określone problemy. Zasady mogą być stosowane w dowolnym miejscu, niezależnie od kontekstu. Właściwie wzorce oparte na zasadach (SRP, DRY itp.)
EG Pozwala spojrzeć na wzór strategii. Definiuje rodzinę algorytmów, hermetyzuje każdy z nich i czyni je wymiennymi. Masz tutaj wysokopoziomową koncepcję algorytmu. Wzorzec stanu zapewnia wysokopoziomową koncepcję stanu. Zgodnie z zasadami nie masz żadnych koncepcji wysokiego poziomu. Zasady to bloki konstrukcyjne, które stosowane są przez wzór do osiągnięcia celu. Podczas wdrażania wzorca strategii używasz SOLID:
źródło
Wzory zostały pierwotnie udokumentowane dla architektury. W architekturze stosuj takie rzeczy, jak umieszczenie drzwi w pokoju lub układ wioski.
Gang of Four zastosował ten pomysł do programowania obiektowego. Może istnieć więcej niż jeden wzorzec, którego można użyć do rozwiązania problemu, ale każdy wzorzec będzie miał określoną implementację. Wzorce istnieją w innych podejściach programistycznych, ale nie znam żadnych odpowiednich książek. Jak wspomnieli inni Wzory obejmują konkretne wdrożenia. Używanie wzorca, gdy się nie stosuje, jest często uważane za anty-wzorek.
Zasady nie obejmują wdrażania, chociaż mogą istnieć standardowe podejścia do wdrażania. Zasady dotyczą raczej zagadnień ogólnych, a nie konkretnych problemów. W przypadku Inversion of Control mam świadomość co najmniej trzech podejść do wdrożenia. W przypadku DRY (Don't Repeat Yourself) nie wiem o konkretnym podejściu do implementacji, chociaż używam kilku.
Rozważać
źródło
Zasada projektowania OO—
Zasada OO to zbiór wytycznych, które zapewniają koncepcję OOP. W oparciu o koncepcję OOP określa to sposoby lepszego projektowania, lepszego projektowania. Podstawową zasadą projektowania OO jest SOLID.
Wzorzec projektowy stanowi ogólne rozwiązanie problemu projektowego. Uwaga: „wzorzec projektowy” można również zastosować do słowa obiektowego w południe. Tak więc wzorce projektowe OO (OODP) to te, które zapewniają ogólne rozwiązanie zasady obiektowej projektowania obiektowego opartej na projektowaniu. Wzory projektowe są odkryte, a nie wynalezione. Istnieje kilka sposobów definiowania OODP, a najbardziej znany to BSC [Behavioural Structural Creational].
Poniżej znajduje się link do szczegółowych wyjaśnień. http://techythought.wordpress.com/2013/01/21/design-principle-vs-ds-design-pattern-describing-oop-elements/
źródło