Первый вопрос, который вы себе задаете, это…

Что такое шаблоны проектирования?

Шаблоны проектирования — это решения общих проблем, с которыми разработчики программного обеспечения столкнулись во время разработки программного обеспечения. Эти решения были получены методом проб и ошибок многочисленными разработчиками программного обеспечения в течение довольно значительного периода времени.

Паттерн — это не конкретный фрагмент кода, а общая концепция решения конкретной проблемы. Вы можете следить за деталями паттерна и реализовывать решение, соответствующее реалиям вашей собственной программы.

Шаблоны — это не алгоритмы!

Шаблоны часто путают с алгоритмами, потому что оба понятия описывают типичные решения некоторых известных проблем. В то время как алгоритм всегда определяет четкий набор действий, которые могут достичь некоторой цели, шаблон представляет собой более высокоуровневое описание решения. Код одного и того же шаблона, примененный к двум разным программам, может быть разным.

Аналогом алгоритма является кулинарный рецепт: оба имеют четкие шаги для достижения цели. С другой стороны, паттерн больше похож на чертеж: вы можете видеть, каков результат и его особенности, но точный порядок реализации зависит от вас.

Из чего состоит шаблон?

Большинство шаблонов описаны очень формально, поэтому вы можете воспроизвести их во многих контактах, шаблоны проектирования — это просто шаблоны для решения проблем, вы можете объединить два или более шаблонов проектирования вместе, чтобы решить свою собственную проблему.

Зачем мне изучать шаблоны?

Вы не должны изучать шаблоны, вы можете работать программистом много лет, не зная о родителях-одиночках, многие люди именно так и делают. Однако даже в этом случае вы можете внедрять некоторые шаблоны, даже не подозревая об этом. Так зачем вам тратить время на их изучение?

  • Шаблоны проектирования определяют общий язык, который вы и ваши товарищи по команде можете использовать для более эффективного общения. Вы можете сказать: «О, просто используйте для этого синглтон», и все поймут идею вашего предложения. Не нужно объяснять, что такое синглтон, если вы знаете паттерн и его название.
  • Шаблоны проектирования — это набор испытанных и испытанных решений общих проблем при проектировании программного обеспечения. Даже если вы никогда не столкнетесь с этими проблемами, знание шаблонов все равно полезно, поскольку оно учит вас, как решать всевозможные проблемы, используя принципы объектно-ориентированного проектирования.

Помните это: когда вы хотите нарисовать круг, вы будете использовать шаблон круга, программирование похоже на рисование, вы используете шаблоны для решения своей проблемы, вы можете рисовать круг без шаблона, но представьте, что если ваша рука дрожит, форма не будет кругом.

Сколько шаблонов проектирования у него есть?

У нас есть 23 шаблона проектирования с именами:

  • Фабричный метод
  • Абстрактная фабрика
  • Строитель
  • Опытный образец
  • Синглтон
  • Адаптер
  • Мост
  • Композитный
  • Декоратор
  • Фасад
  • Наилегчайший вес
  • Прокси
  • Итератор
  • Медиатор
  • Сувениры
  • Наблюдатель
  • Состояние
  • Стратегия
  • Метод шаблона
  • Посетитель
  • Цепочка ответственности
  • Команда
  • Устный переводчик

Источник: Книга «Погружение в шаблоны проектирования».