пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Определение шаблона (образца/паттерна) проектирования. Виды шаблонов и их классификация, распределение «обязанностей» между шаблонами.

В разработке программного обеспечения, шаблон проектирования или паттерн(англ.designpattern) – повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
В общем случае паттерн состоит из четырех основных элементов:
1) Имя. Сославшись на него, можно сразу описать проблему проектирования, ее решения и их последствия.
2) Задача. Описание того, когда следует применять паттерн. Необходимо сформулировать задачу и ее контекст. Может описываться конкретная проблема проектирования, например способ представления алгоритмов в виде объектов.
3) Решение. Описание элементов дизайна, отношений между ними, функций каждого элемента. Конкретный дизайн или реализация не имеются в виду, поскольку паттерн – это шаблон, применимый в самых разных ситуациях.
4) Результаты – это следствия применения паттерна и разного рода компромиссы.
Паттерн проектирования именует, абстрагирует и идентифицирует ключевые аспекты структуры общего решения, которые и позволяют применить его для создания повторно используемого дизайна. Он вычленяет участвующие классы и экземпляры, их роль и отношения, а также функции. При описании каждого паттерна внимание акцентируется на конкретной задаче объектно-ориентированного проектирования. Анализируется, когда следует применять паттерн, можно ли его использовать с учетом других проектных ограничений, каковы будут последствия применения метода.
Паттерны проектирования различаются степенью детализации и уровнем абстракции и должны быть каким-то образом организованы. Удобнее классифицировать паттерны по двум критериям:
Первый критерий – цель – отражает назначение паттерна. В связи с этим выделяются порождающие паттерны (Фабричный метод, Абстрактная фабрика, Одиночка, Прототип, Строитель), структурные паттерны (Адаптер, Декоратор, Заместитель, Компоновщик, Мост, Приспособленец, Фасад) и паттерны поведения (Интерпретатор, Шаблонный метод, Итератор, Команда, Наблюдатель, Посетитель, Посредник, Состояние, Стратегия, Хранитель, Цепочка обязанностей)
Первые связаны с процессом создания объектов. Вторые имеют отношение к композиции объектов и классов. Паттерны поведения характеризуют то, как классы или объекты взаимодействуют между собой.
Второй критерий – уровень – говорит о том, к чему обычно применяется паттерн: к объектам или классам. Паттерны уровня классов описывают отношения между классами и их подклассами. Такие отношения выражаются с помощью наследования, поэтому они статичны, то есть, зафиксированы на этапе компиляции. Паттерны уровня объектов описывают отношения между объектами, которые могут изменяться во время выполнения, и потому более динамичны.
Порождающие паттерны классов частично делегируют ответственность за создание объектов своим подклассам, тогда как порождающие паттерны объектов передают ответственность другому объекту. Структурные паттерны классов используют наследование для составления классов, в то время как структурные паттерны
объектов описывают способы сборки объектов из частей. Поведенческие паттерны классов используют наследование для описания алгоритмов и потока управления, а поведенческие паттерны объектов описывают, как объекты, принадлежащие некоторой группе, совместно функционируют и выполняют задачу, которая ни одному отдельному объекту не под силу.


28.01.2019; 16:49
хиты: 186
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь