0 7.6K ru

Каталог паттернов для архитектуры корпоративных приложений (PoEAA)

Эта статья посвящена всем паттернам с каталога для архитектуры корпоративных приложений (Patterns of enterprise application architecture (PoEAA)) по мотивам книги Мартина Фаулера

Domain Logic паттерны

  1. Transaction Script — способ организации бизнес-логики по процедурам, каждая из которых обслуживаетодин запрос, инициируемый view слоем
  2. Модель предметной области (Domain Model) — объектно-ориентированный шаблон проектирования. Цель проектирования предметной области – определение бизнес-объектов, которые представляют реальные сущности предметной области. При использовании модели предметной области бизнес-сущности и сущности предметной области включают и поведение, и структуру.
  3. Table Module — Объект, охватывающий логику обработки всех записей хранимой или виртуальной таблицы базы данных 
  4. Service Layer — Паттерн Service Layer определяет для приложения границу и набор допустимых операций с точки зрения взаимодействующих с ним клиентских компонентов. Он инкапсулирует бизнес-логику приложения, управляя транзакциями и управляя ответами в реализации этих операций.

Data Source Architectural паттерны

Статья по  Data Source Architectural паттернам

  1. Table Data Gateway (Шлюз к данным таблицы) — объект выступает в качестве шлюза между данными в приложении и в БД. Один объект работает сразу со всеми записями в таблице.
  2. Row Data Gateway (Шлюз к данным записи) — объект выступает в роли шлюза к отдельной записи в источнике данных. Один экземпляр на одну запись.
  3. Active Record (Активная запись) — объект, выполняющий роль оболочки для строкитаблицыили представления базыданных. Он инкапсулирует доступ к базе данных и добавляетк даннымлогику домена
  4. Data Mapper — осуществляет передачу данных между объектами и базой данных, сохраняя последние независимыми друг от друга и от самого mapper'a.

Object-Relational Behavioral паттерны 

  1. Unit of Work — содержит список объектов, охватываемых бизнес-транзакцией, координирует запись изменений в базу данных и разрешает проблемы параллелизма
  2. Identity Map — гарантирует, что каждый объект будет загружен из базыданных только один раз, сохраняя загруженный объект в специальной коллекции. При получении запроса просматривает коллекцию в поисках нужного объекта
  3. Lazy Load — объект, который не выгружает все требующиеся данные сразу, однако может загрузить их в случае необходимости.

Object-Relational Structural паттерны

Object-Relational Structural паттерны: 

  1. Identity Field — cохраняет идентификатор записи базы данных для поддержки соответствия между объектом приложения и строкой базы данных.
  2. Foreign Key Mapping — отображает ассоциации между объектами на ссылки внешнего ключа между таблицами базы данных
  3. Association Table Mapping — сохраняет множество ассоциаций в виде таблицы, содержащей внешние ключи таблиц, связанных ассоциациями
  4. Dependent Mapping — передает некоторому классу полномочия по выполнению отображения для дочернего класса
  5. Embedded Value — отображает объект на несколько полей таблицы, соответствующей другому объекту
  6. Serialized LOB — сохраняет граф объектов путем их сериализациив единый крупный объект (Large Object — LOB) и помещает его в поле базы данных
  7. Наследование с одной таблицей (Single Table Inheritance)​ — представляет иерархию наследования классов в виде одной таблицы, столбцы которой соответствуют всем полям классов, входящих в иерархию
  8. Наследование с таблицами для каждого класса (Class Table Inheritance) — представляет иерархию наследования классов, используя по одной таблице для каждого класса
  9. Наследование с таблицами для каждого конкретного класса (Concrete Table Inheritance) — представляет иерархию наследования классов, используя по одной таблице для каждого конкретного класса этой иерархии
  10. Преобразователи наследования (Inheritance Mappers)​ — Структура, предназначенная для организации преобразователей, которые работают с иерархиями наследования

Object-Relational Metadata Mapping паттерны

  1. Metadata Mapping — хранит описание деталей объектно-реляционного отображения в виде метаданных
  2. Объект запроса (Query Object) — это структура объектов, которая может интерпретироваться в SQL-запрос. Можно создавать такой запрос ссылаясь на классы и поля так же как на таблицы и столбцы. Таким образом создаётся независимость разработчика от струткуры БД и конкретной реализации БД.
  3. Repository — это посредник между domain слоем и mapping слоем, используя интерфейс, схожий с коллекциями для доступа к объектам области определения.

Web Presentation паттерны

Web Presentation паттерны:

  1. Model View Controller
  2. Page Controller
  3. Front Controller
  4. Template View
  5. Transform View
  6. Two-Step View
  7. Application Controller

Distribution паттерны

Distribution паттерны:

  1. Remote Facade
  2. Data Transfer Object

Offline Concurrency паттерны

Подборка Offline Concurrency паттернов

  1. Optimistic Offline Lock
  2. Pessimistic Offline Lock
  3. Coarse Grained Lock
  4. Implicit Lock

Session State Patterns

Подборка паттернов для хранения состояния сеанса

  1. Client Session State 
  2. Server Session State 
  3. Database Session State

Base Patterns

Базовые паттерны:

  1. Gateway
  2. Mapper
  3. Layer Supertype
  4. Separated Interface
  5. Registry
  6. Value Object
  7. Money
  8. Special Case
  9. Plugin
  10. Service Stub
  11. Record Set 

Comments:

Please log in to be able add comments.