Kiedy stosować jaki wzór? [zamknięte]

Bardzo lubię wzorce projektowe, ale trudno mi się zorientować, kiedy mogę je zastosować. Przeczytałem wiele stron internetowych, na których wyjaśniono wzorce projektowe. Rozumiem większość z nich, ale trudno mi rozpoznać wzorzec we własnych sytuacjach.

Dlatego zadaję to pytanie. Czy są jakieś wytyczne / dzwonki alarmowe, kiedy użyć który wzór projektowy.

Na przykład, jeśli wykonujesz polecenie switch, aby określić, który obiekt chcesz utworzyć, pewnie chce użyć wzorca fabrycznego. Tak więc instrukcja switch w tym przypadku jest "dzwonkiem alarmowym", aby użyć wzorca fabrycznego.

Więc, czy wiesz więcej "dzwonki alarmowe", aby określić wzór projektowy?

Author: Martijn, 2011-02-18

4 answers

Na początek wystarczy rzucić okiem na tę stronę: http://codebetter.com/jeremymiller/2006/04/11/six-design-patterns-to-start-with/

Podczas gdy Jeremy zajmuje się kilkoma zestawami wzorców, musisz przeczytać te artykuły, a następnie postępować zgodnie z tym: http://codebetter.com/jeremymiller/2005/09/01/learning-about-design-patterns/

Użyj również odniesień do tego artykułu (zwłaszcza wywiadu Erica Gamma) i powinieneś być ustawiony.

 35
Author: J K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-18 10:03:47

Zwykle Proces jest na odwrót. Nie szukaj sytuacji, w których można użyć wzorców projektowych, Szukaj kodu, który można zoptymalizować. Gdy masz kod, który Twoim zdaniem nie jest poprawnie skonstruowany. spróbuj znaleźć wzór projektowy, który rozwiąże problem.

Wzorce projektowe mają pomóc w rozwiązywaniu problemów strukturalnych, nie projektuj aplikacji tylko po to, aby móc korzystać z wzorców projektowych.

 89
Author: Joep Killaars,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-18 09:53:26

Naucz się ich, a powoli będziesz w stanie rekonesansować i dowiedzieć się, kiedy ich użyć. Zacznij od czegoś prostego jak wzór Singletona:)

Jeśli chcesz utworzyć jedną instancję obiektu i tylko jedną. Używasz wzoru Singletona. Załóżmy, że tworzysz program z obiektem options. Nie chcesz kilku takich, To byłoby głupie. Singleton upewnia się, że nigdy nie będzie więcej niż jeden. Wzór Singletona jest prosty, często używany i naprawdę skuteczny.

 5
Author: Peter Rasmussen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-18 10:01:33

Całkowicie się Zgadzam z @ Peter Rasmussen.

Wzorce projektowe zapewniają ogólne rozwiązanie powszechnie występującego problemu projektowego.

Chciałbym, abyś zastosował się do poniższego podejścia.

  1. zrozumieć intencję każdego wzorca
  2. zrozumieć listę kontrolną lub przypadek użycia każdego wzorca
  3. pomyśl o rozwiązaniu Twojego problemu i sprawdź, czy Twoje rozwiązanie mieści się w liście kontrolnej określonego wzorca
  4. Jeśli nie, po prostu zignoruj wzorce projektowe i napisz własne rozwiązanie.

Przydatne linki:

Sourcemaking : Explains intent, struktura i checklist pięknie w wielu językach, w tym C++ i Java

Wikipedia : wyjaśnia strukturę, diagram UML i przykłady robocze w wielu językach, w tym w C# i Javie .

Lista kontrolna oraz rules of thumb w każdym sourcemakding design-pattern zapewnia alram bell, którego szukasz.

 4
Author: Ravindra babu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-23 11:48:18