Назначение

 

Шаблонный метод определяет основу алгоритма (каркас) и позволяет подклассам переопределять некоторые шаги алгоритма, не изменяя его структуры в целом. Таким образом, контракт между базовым классом и его наследниками определяется более чётко, чем это делается простым наследованием. За счёт определения каркаса алгоритма в базовом классе, мы избегаем лишнего дублирования кода.

 

Читать далее

Метафора

 

Стратегия используется для выбора различных путей достижения результата. Допустим, нам понадобилось сходить в магазин за продуктами, какой выбор у нас есть? Можно заказать продукты на дом, можно сходить самому, можно отправить жену :). В любом из возможных случаев вы получаете результат – продукты из магазина.

 

Читать далее

Метафора

 

Примером из жизни может служить способ сокращения набором слов определенных действий, например, говоря официанту в сабвее: «Серый, курица терияки, со всеми овощами, 1000 островов и чесночный», Вы тем самым даёте ему на интерпретацию некоторую команду, а он уже пытается её преобразовать в последовательность выполнения команд: достать и разрезать серый хлеб, положить куриную начинку со всеми овощами и залить это все двумя соусами, подать Вам.

 

Читать далее

Метафора

 

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

 

Читать далее

Метафора

 

Представим ситуацию, когда вам требуется работать на разных автомобилях, однако садясь в новый автомобиль вам уже желательно знать, как им управлять. Таким образом, Вы сталкиваетесь с паттерном «мост». С одной стороны, вы имеете множество различных автомобилей (разные модели и марки), но среди них есть общая абстракция (интерфейс) в виде руля, педалей, коробки передач и так далее. Таким образом, мы задаем как-бы правила изготовления автомобилей, по которым мы можем создавать любые их виды, но за счет сохранения общих правил взаимодействия с ними, мы можем одинаково управлять каждым из них. «Мостом» в данном случае является пара двух «объектов»: конкретного автомобиля и правил взаимодействия с этим (и любым другим) автомобилем.

 

Читать далее

Метафора

 

Метафорой данного шаблона можно представить какой-нибудь орган гос. власти. Вы приходите в налоговую инспекцию за получением справки, оставляете заявление на её получение. Заявление у вас принимает один специалист, а далее в зависимости от типа документа, перенаправляет его на нужного человека, который специализируется обработкой этих заявок. Таким образом, ваше заявление (сообщение) проходит и обрабатывается в некоторой цепочке специалистов.

 

Читать далее

Метафора

 

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

 

Читать далее

Метафора

 

В реальной жизни каждый человек может прибывать в разных состояниях. Если вы устали, то на предложение «Сходи в магазин», вы скорее ответите «Не пойду, я устал». А если вы не устали, тогда скорее всего вы ответите «Уже иду». Таким образом, ваше поведение зависит от того, в каком состоянии Вы прибываете.

 

Читать далее

Метафора

 

Наверняка вы работали когда-нибудь с прокси-серверами? Суть паттерна такая же, есть некоторый прокси объект, который делает перенаправление вызовов к реальному объекту. При этом для Вас как для клиента ничего не меняется, интерфейс остаётся тем же.

 

Читать далее