Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
для шпор(печатаем 8 стр на листе).docx
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

34. Паттерны проектирования. Основные паттерны.

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

Название

Оригинальное название

Описание

Основные паттерны

Делегирование

Delegation pattern

Объект передает ответственность за выполнение некоторого действия, связанного с ним, другому объекту

Функциональный дизайн

Functional design

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

Неизменяемый объект

Immutable

Объект, который неизменен после его создания

Порождающие паттерны

Абстрактная фабрика

Abstract factory

Класс, который представляет интерфейс для создания других объектов

Строитель

Builder

Интерфейс, используемый для создания сложного объекта (объекта-агрегата)

Фабричный метод

Factory method

Определяет интерфейс для создания объекта, но оставляет наследником о том, объект какого класса создавать

Отложенная инициализация

Lazy initialization

Объект не инициализируется до своего использования

Пул одиночек

Multiton

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

Объектный пул

Object pool

Класс, который пердставлюет собой интерфейс для работы с инициализированными и готовыми к использованию объектов

Прототип

Prototype

Определяет интерфейс для создания объекта через клонирование другого объекта вместо создания через конструктор

RAII

…

…

Структурные паттерны

Адаптер

Wrapper (Adapter)

Объект, который обеспечивает взаимодействие двух других объектов, первый из которых использует, а другой предоставляет несовместимый с первым интерфейс

Мост

Bridge

Структура, позволяющая изменять интерфейс обращения и интерфейс реализации независимо друг от друга

Компоновщик

composite

Объект, который объединяет в себе другие объекты, подобные ему самому

Декоратор

Decorator

Расширяет функционал другого класса без использования наследования

Фасад

Façade

Объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое

Поведенческие паттерны

Команда

Command

Представляет собой некоторое действие и хранит в себе как само действие, так и его параметры.

Итератор

Iterate

Обеспечивает доступ к элементам некоторого контейнера, не зная его реализации

Наблюдатель

Observer

Объект, который реализует связь «один-ко-многим», при изменении состояния одного из связанных с ним объектов об этом оповещаются все остальные

Стратегия

Strategy

Паттерн предназначен для определения семейства алгоритмов и обеспечения их взаимозаменяемости.

Шаблонный метод

Template method

Определяет основу алгоритма и позволяет наследникам переопределять некоторые его шаги, не изменяя структуры в целом.

Экспериментирование и анализ

Для проверки выбранной концепции выполняется построение прототипа: прототипа интерфейса (позволяющий «пощупать» программу)/прототип ядра (реализация функционала либо его части).

Самое главное назначение прототипа – это более глубокое осознание решаемой задачи. Нельзя принимать прототип за готовое изделие! Далее выполняется анализ прототипа – это его детальное рассмотрение с целью избегания неоправданного усложнения/упрощения проекта.

Тестирование: на вопрос: «Когда тестировать?», следует отвечать: «При любой возможности».

Методы тестирования:

  1. Метод черного ящика

  2. Метод белого ящика