Модели дизайна для начинающих

21

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

Но да, есть очевидная разница между реализацией шаблона проектирования и «использованием» шаблона проектирования… в любом случае, человек, работающий с шаблонами проектирования, понимает это или легко поймет.

Дело в том, что шаблоны проектирования не новы для программистов.

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

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

Начать…

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

Например, возьмем много Резюме, поданных на вакансию. Резюме у всех разные… хотя все они, как правило, делают одно и то же, то есть рассказывают читателю, в чем они опытны, или как он/она может подойти для этой работы.

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

Это… это шаблон, по которому каждый представляет резюме с определенным набором информации, выраженной в нем.

Если хотите… назовите это Шаблонами, а не Шаблонами. Шаблоны дизайна.

В реальной жизни есть много таких вещей, которые являются шаблонами. Некоторым нравятся приведенные ниже примеры:

Все повара мира готовят пиццу или картофель фри одинаково. Хотя они могут превысить его / ароматизировать его по-разному. Это закономерность.

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

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

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

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

В основном по двум причинам:

  1. Придерживаться стандарта
  2. Для ускорения разработки

Я объясню подробно.

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

Давайте возьмем пример списка резюме, который мы обсуждали ранее.

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

Неужели нет никого, кто отклоняется от шаблона и становится «крутым»? Разве это не инновация?

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

Но… это экспериментирование (Инновации рождаются из успешных экспериментов).

Чаще всего при разработке программного обеспечения вы не можете позволить себе экспериментировать из-за сжатых сроков, ожиданий и т. д., но да, иногда некоторые интересные проекты позволяют экспериментировать.

В программном обеспечении мы не можем делать базовые вещи, такие как банковский депозит… 101 способом… будет всего несколько способов обработки банковского депозита… поэтому имеет смысл следовать установленному и проверенному шаблону.

Кроме того, у большинства шаблонов проектирования есть вариации… некоторые вариации настолько популярны, что эти вариации также станут новым стандартным типом шаблона.

Ожидается, что в наши дни проекты программного обеспечения (по крайней мере, неявно) будут следовать уже установленному дизайну аналогичного продукта / программного обеспечения на рынке.

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

Ускорение времени разработки

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

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

Разве использование шаблонов проектирования не создает индивидуальный подход?

Нет. Во-первых, потому что мы не говорим, что вы следуете шаблону проектирования и больше ничего не происходит. Большинство реализаций проектов разделяют только основные требования с другими проектами и, скорее всего, будут иметь отклонения. Построение этих отклонений потребует сгибания и расширения стандартных шаблонов, используемых в реализации.

Это все равно, что приготовить пиццу стандартным способом, а затем приправить ее / представить ее в соответствии с различными требованиями, будь то пицца с полным пирогом, нарезанный пирог или что-то еще.

Для понимания важности шаблонов проектирования очень важна одна вещь.важно :

Шаблоны проектирования — это не какие-либо технологии или рамки, которые навязывает нам конкретная компания или язык программирования. Это означает, что это как открытая концепция… вы можете брать ее, использовать, модифицировать под свои нужды и, что важно… чувствовать ее своей.

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

Или как, по вашему мнению, стандартный шаблон проектирования подойдет для проекта в Нью-Джерси для компании, а также в Бангалоре для другой компании и проекта другого типа.

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

Кого должны беспокоить шаблоны проектирования?

  1. Подобно тому, как хороший строительный архитектор совершенствует свои навыки проектирования зданий, изучая архитектуру и дизайн многочисленных зданий и форм на протяжении всей своей жизни, архитектор программного обеспечения должен изучать и визуализировать, как различные программные / технологические системы по всему миру проектируются или спроектированный.
  2. И точно так же, как строители здания должны знать о различных способах реализации проекта здания, либо из своего собственного опыта, либо из понимания этого от Архитектора Здания.

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

Основные шаблоны кода

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

  1. Ниже приведен базовый шаблон проектирования Intercepting Filter .

  2. Скрыть код копирования

  3. switch (condition){
         case Value1:
         case Value2:
         default:
    }
  4. Триггеры событий, обработчики событий… относятся к базовому шаблону проектирования Subject-Observer . Мы обсудим стандарты каждого узора, популярные вариации, с примерами.. скоро.

  5. Если вы использовали какие-то коллекции, например Arraylist в C#, и выполняли итерацию по массиву, то вы использовали базовый шаблон проектирования Iterator .

  6. Приведенный ниже код является примером базового шаблона обработки исключений/ цепочки ответственности.

  7. Скрыть код копирования

  8. try{
    }catch(Exception ex){
    }
    finally{
    }

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

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

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

Есть и другие, такие как архитектурные шаблоны, фреймворковые шаблоны, языковые шаблоны (в основном называемые языковыми конструкциями).

Это паттерны, заложенные на разных уровнях… например , языковые паттерны — это паттерны, реализованные как часть языков программирования, таких как C#/Java, как функции/конструкции языка… некоторые из них мы уже видели.

Все вышеприведенные примеры субъекта-наблюдателя, перехватывающего фильтра и т. д. заимствованы как языковые конструкции во всех популярных высокоуровневых языках программирования, появившихся после C.

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

Это совершенно не связано с шаблонами проектирования в смысле кодирования/программирования, которые… но они имеют одни и те же ответы на вопросы «Почему/Что», как описано в этой статье.

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

Некоторые примеры в .NET Framework включают функцию stackTrace, функцию атрибута класса с квадратными скобками [] поверх определений классов/методов и т. д. При использовании таких функций мы кодируем с использованием встроенных шаблонов Framework.

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

До сих пор мы только обсуждали, что такое стандарты и насколько они важны… но мы не обсуждали, что такое стандартные шаблоны сами по себе.

Лицензия

Эта статья, а также любой связанный с ней исходный код и файлы находятся под лицензией The Code Project Open License (CPOL).

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