НЕ МОЛЧИ!!!    Сделай что-нибудь, чтобы остановить войну России в Украине.
Иначе завтра ТЫ будешь следующим!

Шаблоны проектирования

Шаблоны проектирования, введение к описанию шаблонов, их назначение, классификация, списки основных шаблонов.

Зачем нужны шаблоны проектирования

Шаблон проектирования, или паттерн, — это типовой метод решения определенной задачи при разработке программного обеспечения. Сразу вопрос: а без них можно? Можно. Тогда, зачем они нужны? Давайте разберемся.
Во-первых, они позволяют упростить разработку программного обеспечения за счет использования типовых архитектурных методов решения встающих задач. Другими словами: ребята, уже есть хороший удобный велосипед, не надо его изобретать.
Во-вторых, шаблоны проектирования позволяют создавать надежный, легко модифицируемый код приложения. Достигается это за счет как раз первого утверждения. Другими словами: ребята, неглупые дядьки уже придумали методы решения типичных задач проектирования, которые гарантированно упростят вам жизнь в будущем.

Сложность, на мой взгляд только в одном — собраться, найти время напрячь мозги и разобраться в этих самых паттернах, чтобы правильно и к месту их применять. А думать — это труд не простой и не малый. Но оно того стоит, тем более, что думать в жизни всегда очень полезно.
Как известно, в этом мире за все надо платить. Чем же программист расплачивается за паттерны? В данном случае платой является усложнение кода программы, ее объема. Но, как по мне, тезис насчет усложнения достаточно неоднозначный. Попробуйте представить себе, где сложнее разбираться: в простыне с кодом, где логика автора прослеживается с большим трудом, или с более объемным, но структурированным кодом, в котором прослеживаются типовые шаблоны проектирования? Представили? Тогда вам проще будет согласиться со следующим утверждением. Шаблоны проектирования есть смысл использовать в достаточно серьезных приложениях, а в простеньких программах это будет пушечная пальба по воробьям. Догадываюсь, что сейчас раздались вопли упомянутых артиллеристов, поэтому оговорюсь — это мое личное мнение.
На этом, думаю, вступление можно закончить по одной простой причине. Тот, кто читает эту статью, видимо уже набил нужное количество предназначенных ему судьбой шишек и задумался над тем, как же надо строить архитектуру надежного и гибкого приложения, как говорится, клиент созрел. Кстати, я убежден, что условие «зрелости»(читай, время, когда жизнь заставляет интересоваться, а как надо делать, чтобы потом не крыть себя нехорошими словами?) очень важно для изучения этой темы.

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

Основные типы шаблонов проектирования

patterns

Порождающие шаблоны проектирования — решения по созданию объектов без внесения в приложение жестких взаимозависимостей:

Cтруктурные шаблоны проектирования — определяют различные способы построения структуры приложения:

  • adapter;
  • bridge;
  • composite;
  • decorator;
  • facade;
  • flyweight;
  • proxy.

Поведенческие шаблоны проектирования — решают задачи эффективной взаимосвязи между объектами приложения:

  • chain of responsibility;
  • command;
  • iterator;
  • mediator;
  • memento;
  • observer;
  • state;
  • strategy;
  • template method;
  • visitor.

По мере подготовки материала строки перечислений постепенно будут превращаться в ссылки на детальное описание шаблона с примерами. А пока на этом все.