Для меня не имеет большого смысла углубляться в шаблоны проектирования для человека с очень небольшим опытом. Приятно знать, что они существуют, но на данном этапе вам следует сосредоточиться на других вещах, а не только на изучении шаблонов проектирования.
Они полезны в контексте проблемы - как концепция для новичка / начинающего разработчика они на самом деле не представляют особой практической ценности, если не считать того, что вы должны использовать их, когда и где можете.
ИЗМЕНИТЬ Чтобы прояснить - многие шаблоны проектирования являются результатом проблем, обнаруженных в некоторых областях. Вряд ли новый программист (ИМО) знает шаблон (ы) проектирования, который следует использовать для некоторого набора проблем. Подобно тому, как мы получаем небольшое количество алгоритмов в исследованиях CS, нам нужно понимание того, что мы можем делать с шаблонами и их преимущества, но когда человек все еще строит hello world или открывает для себя stl, практической необходимости в шаблонах проектирования не возникает. Выкройки отличные. Но они не серебряная пуля.
(Ни CASE (инструменты), ни UML, ни SCRUM, ни TDD, ни STL, ни Java, ни XML и т. Д.). Все это лишь аспекты нашей профессии, и рассматривать эти темы как вторые приход наивен.