Образы разработки

Образы разработки

Шаблоны проектирования (паттерн, англ. design pattern) — это многократно применяемая архитектурная конструкция, предоставляющая решение общей проблемы проектирования в рамках конкретного контекста и описывающая значимость этого решения. Паттерн не является законченным образцом проекта, который может быть прямо преобразован в код, скорее это описание или образец для того, как решить задачу, таким образом, чтобы это можно было использовать в различных ситуациях. Объектно-ориентированные шаблоны зачастую показывают отношения и взаимодействия между классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться. Алгоритмы не рассматриваются как шаблоны, так как они решают задачи вычисления, а не проектирования.

Содержание

Архитектура

В 70-х годах двадцатого века архитектор Кристофер Александр (Christopher Alexander) составил набор шаблонов проектирования. В области архитектуры эта идея не получила такого развития, как позже в области программной разработки.

Проектирование компьютерных программ

История

В 1987 году Кент Бэк (Kent Beck) и Вард Каннигем (Ward Cunningham) взяли идеи Александера и разработали шаблоны применительно к разработке программного обеспечения для разработки графических оболочек на языке Эрих Гамма (Erich Gamma) начал писать докторскую работу при цюрихском университете об общей переносимости этой методики на разработку программ.

В 1989—1991 годах Джеймс Коплин (James Coplien) трудился над разработкой идиом для программирования на C++ и опубликовал в 1991 году книгу Advanced C++ Idioms.

В этом же году Эрих Гамма заканчивает свою докторскую работу и переезжает в США, где в сотрудничестве с Ричардом Хелмом (Richard Helm), Ральфом Джонсоном (Ralph Johnson) и Джоном Влиссидсом (John Vlissides) публикует книгу Design Patterns — Elements of Reusable Object-Oriented Software. В этой книге описаны 23 шаблона проектирования. Также команда авторов этой книги известна общественности под названием Банда четырёх (англ. Gang of Four, часто сокращается до GoF). Именно эта книга стала причиной роста популярности шаблонов проектирования.

Польза

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

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

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

Критика

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

Нередко шаблонами заменяется отсутствие или недостаточность документации в сложной программной среде.

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

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

Для преодоления этих недостатков используется рефакторинг.

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

Основные шаблоны (Fundamental)

Порождающие шаблоны проектирования

Структурные шаблоны (Structural)

Поведенческие шаблоны (Behavioral)

Шаблоны параллельного программирования (Concurrency)

  • Active Object
  • Balking
  • Double checked locking
  • Guarded suspension
  • Half-Sync/Half-Async
  • Leaders/followers
  • Monitor Object
  • Reactor
  • Read write lock
  • Scheduler
  • Thread pool
  • Thread-Specific Storage
  • Single Thread Execution

MVC


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Образы разработки" в других словарях:

  • Русская литература — I.ВВЕДЕНИЕ II.РУССКАЯ УСТНАЯ ПОЭЗИЯ А.Периодизация истории устной поэзии Б.Развитие старинной устной поэзии 1.Древнейшие истоки устной поэзии. Устнопоэтическое творчество древней Руси с X до середины XVIв. 2.Устная поэзия с середины XVI до конца… …   Литературная энциклопедия

  • Франция — (France)         Французская Республика (République Française).          I. Общие сведения          Ф. государство в Западной Европе. На С. территория Ф. омывается Северным морем, проливами Па де Кале и Ла Манш, на З. Бискайским заливом… …   Большая советская энциклопедия

  • Литература — Содержание и объем понятия. Критика домарксистских и антимарксистских воззрений на Л. Проблема личного начала в Л. Зависимость Л. от социальной «среды». Критика сравнительно исторического подхода к Л. Критика формалистической трактовки Л.… …   Литературная энциклопедия

  • СССР. Литература и искусство —         Литература          Многонациональная советская литература представляет собой качественно новый этап развития литературы. Как определённое художественное целое, объединённое единой социально идеологической направленностью, общностью… …   Большая советская энциклопедия

  • Российская Советская Федеративная Социалистическая Республика —         РСФСР.          I. Общие сведения РСФСР образована 25 октября (7 ноября) 1917. Граничит на С. З. с Норвегией и Финляндией, на З. с Польшей, на Ю. В. с Китаем, МНР и КНДР, а также с союзными республиками, входящими в состав СССР: на З. с… …   Большая советская энциклопедия

  • Соната № 6 для фортепиано (Прокофьев) — Hilda Wiener (1877 1940). «Sergei Prokofiev», 1936 Шестая соната для фортепиано, Ля Мажор, Ор.82 – была законч …   Википедия

  • Украинская Советская Социалистическая Республика —         УССР (Украïнська Радянська Социалicтична Республika), Украина (Украïна).          I. Общие сведения          УССР образована 25 декабря 1917. С созданием Союза ССР 30 декабря 1922 вошла в его состав как союзная республика. Расположена на… …   Большая советская энциклопедия

  • Соединённые Штаты Америки — (США)         (United States of America, USA).          I. Общие сведения          США государство в Северной Америке. Площадь 9,4 млн. км2. Население 216 млн. чел. (1976, оценка). Столица г. Вашингтон. В административном отношении территория США …   Большая советская энциклопедия

  • Грузинская Советская Социалистическая республика — (Сакартвелос Сабчота Социалистури Республика)         Грузия (Сакартвело).          I. Общие сведения          Грузинская ССР образована 25 февраля 1921. С 12 марта 1922 по 5 декабря 1936 входила в состав Закавказской федерации (См. Закавказская… …   Большая советская энциклопедия

  • Китай —         Китайская Народная Республика, КНР (кит. Чжунхуа жэньминь гунхэго).          I. Общие сведения К. крупнейшее по численности населения и одно из крупнейших по площади государств в мире; расположен в Центральной и Восточной Азии. На востоке …   Большая советская энциклопедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»