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

Список типовых решений

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

Блокировка с низкой степенью детализации (Coarse-Grained Lock). Блокирует группу взаимосвя­занных объектов как единый элемент.

Внедренное значение (Embedded Value). Отображает объект на несколько полей таблицы, соответ­ствующей другому объекту.

Двухэтапное представление (Two Step View). Выполняет визуализацию данных домена в два этапа: вначале формирует некое подобие логической страницы, после чего преобразует логическую страницу в формат HTML.

Деньги (Money). Представляет денежное значение.

Дополнительный модуль (Plugin). Связывает классы во время настройки, а не во время компиля­ции приложения.

Единица работы (Unit of Work). Содержит список объектов, охватываемых бизнес-транзакцией, координирует запись изменений в базу данных и разрешает проблемы параллелизма.

Загрузка по требованию (Lazy Load). Объект, который не содержит все требующиеся данные, од­нако может загрузить их в случае необходимости.

Интерфейс удаленного доступа (Remote Facade). Предоставляет интерфейс с низкой степенью де­тализации для доступа к объектам, имеющим интерфейс с высокой степенью детализации, в целях по­вышения эффективности работы в сети.

Коллекция объектов (Identity Map). Гарантирует, что каждый объект будет загружен из базы дан­ных только один раз, сохраняя загруженный объект в специальной коллекции. При получении запроса просматривает коллекцию в поисках нужного объекта.

Контроллер запросов (Front Controller). Контроллер, который обрабатывает все запросы к Web-сайту.

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

Контроллер страниц (Page Controller). Объект, который обрабатывает запрос к конкретной Web-странице или выполнение конкретного действия на Web-сайте.

Множество записей (Record Set). Представление табличных данных в оперативной памяти.

Модель-представление-контроллер (Model View Controller). Распределяет обработку взаимодей­ствия с пользовательским интерфейсом между тремя участниками.

Модель предметной области (Domain Model). Объектная модель домена, охватывающая поведе­ние (функции) и свойства (данные).

Модуль таблицы (Table Module). Объект, охватывающий логику обработки всех записей храни­мой или виртуальной таблицы базы данных.

Наследование с одной таблицей (Single Table Inheritance). Представляет иерархию наследования классов в виде одной таблицы, столбцы которой соответствуют всем полям классов, входящих в иерархию.

Наследование с таблицами для каждого класса (Class Table Inheritance). Представляет иерархию наследования классов, используя по одной таблице для каждого класса.

Наследование с таблицами для каждого конкретного класса (Concrete Table Inheritance). Представ­ляет иерархию наследования классов, используя по одной таблице для каждого конкретного класса этой иерархии.

Неявная блокировка (Implicit Lock). Предоставляет инфраструктуре приложения или супертипу слоя право накладывать автономные блокировки.

Объект-значение (Value Object). Небольшие простые объекты наподобие денежных значений или диапазонов дат, равенство которых не основано на равенстве идентификаторов.

Объект запроса (Query Object). Объект, представляющий запрос к базе данных.

Объект переноса данных (Data Transfer Object). Применяется для переноса данных между про­цессами в целях уменьшения количества вызовов.

Оптимистическая автономная блокировка (Optimistic Offline Lock). Предотвращает возникнове­ние конфликтов между параллельными бизнес-транзакциями путем обнаружения конфликта и отката транзакции.

Отделенный интерфейс (Separated Interface). Предполагает размещение интерфейса и его реали­зации в разных пакетах.

Отображение внешних ключей (Foreign Key Mapping). Отображает ассоциации между объектами на ссылки внешнего ключа между таблицами базы данных.

Отображение зависимых объектов (Dependent Mapping). Передает некоторому классу полномочия по выполнению отображения для дочернего класса.

Отображение метаданных (Metadata Mapping). Хранит описание деталей объектно-реляционного отображения в виде метаданных.

Отображение с помощью таблицы ассоциаций (Association Table Mapping). Сохраняет множество ассоциаций в виде таблицы, содержащей внешние ключи таблиц, связанных ассоциациями.

Пессимистическая автономная блокировка (Pessimistic Offline Lock). Предотвращает возникнове­ние конфликтов между параллельными бизнес-транзакциями, предоставляя доступ к данным в кон­кретный момент времени только одной бизнес-транзакции.

Поле идентификации (Identity Field). Сохраняет идентификатор записи базы данных для под­держки соответствия между объектом приложения и строкой базы данных.

Представление по шаблону (Template View). Преобразует результаты выполнения запроса в формат HTML путем внедрения маркеров в HTML-страницу.

Представление с преобразованием (Transform View). Представление, которое поочередно обраба­тывает элементы данных домена и преобразует их в код HTML.

Преобразователи наследования (Inheritance Mappers). Структура, предназначенная для органи­зации преобразователей, которые работают с иерархиями наследования.

Преобразователь (Mapper). Объект, устанавливающий взаимодействие между двумя независи­мыми объектами.

Преобразователь данных (Data Mapper). Слой преобразователей (Mapper), который осуще­ствляет передачу данных между объектами и базой данных, сохраняя последние независимыми друг от друга и от самого преобразователя.

Реестр (Registry). "Глобальный" объект, который используется другими объектами для поиска общих объектов или служб.

Сериализованный крупный объект (Serialized LOB). Сохраняет граф объектов путем их сериализации в единый крупный объект (Large Object — LOB) и помещает его в поле базы данных.

Слой служб (Service Layer). Схема определения границ приложения посредством слоя служб, который устанавливает множество доступных действий и координирует отклик приложения на каждое действие.

Сохранение состояния сеанса в базе данных (Database Session State). Сохраняет состояние сеанса как обычное содержимое базы данных.

Сохранение состояния сеанса на стороне клиента (Client Session State). Сохраняет состояние сеан­са на стороне клиента.

Сохранение состояния сеанса на стороне сервера (Server Session State). Сохраняет сериализованное представление состояния сеанса на стороне сервера.

Супертип слоя (Layer Supertype). Тип, выполняющий роль суперкласса для всех классов своего слоя.

Сценарий транзакции (Transaction Script). Способ организации бизнес-логики по процедурам, каждая из которых обслуживает один запрос, инициируемый слоем представления.

Фиктивная служба (Service Stub). Устраняет зависимость приложения от труднодоступных или проблемных служб на время тестирования.

Хранилище (Repository). Выступает в роли посредника между слоем домена и слоем отображения данных, предоставляя интерфейс в виде коллекции для доступа к объектам домена.

Частный случай (Special Case). Производный класс, описывающий поведение объекта в особых ситуациях.

Шлюз (Gateway). Объект, инкапсулирующий доступ к внешней системе или источнику данных.

Шлюз записи данных (Row Data Gateway). Объект, выполняющий роль шлюза (Gateway, 753) к отдельной записи источника данных. Каждой строке таблицы базы данных соответствует свой экземп­ляр шлюза записи данных (Row Data Gateway).

Шлюз таблицы данных (Table Data Gateway). Объект, выполняющий роль шлюза (Gateway, 753) к базе данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]