Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка к зачету Гадасина за 16 часов.docx
Скачиваний:
11
Добавлен:
21.01.2024
Размер:
8.53 Mб
Скачать

32. Классификация паттернов

Предлагается следующая общая классификация паттернов по категориям их применения:

  • Архитектурные паттерны

  • Паттерны проектирования

  • Паттерны анализа

  • Паттерны тестирования

  • Паттерны реализации

Можно выделить 3 класса паттернов:

1. концептуальные – паттерны, функционирование которых описывается в терминах предметной области, они относятся к приложению в целом или к крупным подситемам.

2. паттерны проектирования – использует термины, относящиеся к разработке программных систем и описывают решения общих проблем в конкртеном контексте.

3. программные – при описании используются низкоуровневые понятия, такие как: деревья и списки.

Также паттерны можно разделить на паттерны общего назначения и доменно-ориентированные. Общего назначения – явным образом не привязаны к предметной области. Доменноориентированные имеют такую привязку.

Выделяют следующие паттерны общего назначения:

1. архитектурный паттерн – описывает структуру программной системы и определяет состав подсистем; основная функция – описать структуру, которая не зависит ни от платформы, ни от языка программирования и рассматривается как паттерн высокого уровня

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

3. структурный паттерн – применяются с одинаковой эффективностью как для разделения, так и для объединения приложений; используются для решения таких задач, как: обеспечение возможности двум несовместимым системам обмениваться информацией (шаблон Адаптер), отображать упрощенный пользовательский интерфейс, не удаляя ненужных конкретному пользователю элементов управления (шаблон Фасад), обеспечение клиенту регистрироваться на сервере для выполнения расширенных операций

4. поведенческий паттерн – применяет для передачи управления в системе, существуют такие методы организации управления, применение которых позволяет добиваться значительного повышения как эффективности системы, так и удобства ее эксплуатации. Они (эти шаблоны) представляют собой набор проверенных на практике методов и обеспечивают понятные и простые в применении эвристические способы организации цправления.

5. производящие паттерны – предназначены для создания объектов в системе. В ходе работы большинства объектно-ориентированных систем независимо от уровня их сложности создается множество экземпляров объектов. Эти паттерны облегчают процесс создания объектов, предоставляя такие возможности, как:

- единый способ получения экземпляра объекта (в системе обеспечивается механизм создания объектов без необходимости идентификации определенных типов классов в программном коде);

- простоты создания объектов (разработчик полностью избавлен от необходимости написания большого и сложного программного кода для получения экземпляра объекта);

- учет ограничений при создании объектов.

6. паттерны параллельного (проверенного) программирования – ориентированы на обеспечение корректного взаимодействия асинхронно (синхронно) протекающих процессов и решения двух основных задач:

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

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

Для разного типа паттерна используются разные способы их описания, но для большиства используется следующий – структура описания:

- название и тип;

- назначение;

- другие названия (при наличии);

- мотивация (т.е. какие проблемы можно решить с помощью данного паттерна);

- условия (когда целесообразно применить данный паттерн);

- структура паттерна в объектно-ориентированной нотации;

- объекты и паттерны, используемые в данном паттерне;

- результаты работы паттерна;

- рекомендации по применению;

- пример кода;

- примеры использования;

- родственные паттерны.