5. Проектирование слоя бизнес логики - RikRimberg/Software-architecture-design-2016-2017 GitHub Wiki
Сравнительный анализ и выбор архитектурного шаблона уровня бизнес-логики
Паттерн | Описание | Преимущества | Недостатки |
---|---|---|---|
Сценарий транзакции (функциональный подход) | Логика предметной области распределяется по транзакциям, выполняемым в системе. | Удобная процедурная модель, легко воспринимаемая разработчиками; Удачно сочетается с простыми схемами организации слоя источника данных; Определяет четкие границы транзакций | Высокая сложность сценариев; Дублирование фрагментов кода |
Модель предметной области (объектный подход) | Предусматривает создание сети взаимосвязанных объектов, каждый из которых представляет некую осмысленную сущность - либо такую крупную, как промышленная корпорация, либо настолько мелкую, как строка формы заказа. | Перераспределение логики между объектами; Сложность алгоритмов перетекает в связи между объектами; Масштабируемость и расширяемость | Требует опыта «объектного мышления»; Более трудоемка; Множество связей затрудняет понимание |
Модуль таблицы (смешанный подход) | Основано на максимальном совмещении структуры приложения с реляционной моделью используемой базы данных. Предусматривает создание по одному классу на каждую таблицу базы данных, и единственный экземпляр класса содержит всю логику обработки данных таблицы. | Учитывает структуру хранения данных; Объединение данных и логики; Множественная обработка данных | Затруднены связи между объектами; Сложность применения полиморфизма; Зависимость от способа хранения данных |
Слой служб | Схема определения границ приложения посредством слоя служб, который устанавливает множество доступных действий и координирует отклик приложения на каждое действие. | Возможность определения набора операций, доступных для применения многими категориями клиентов; Координация откликов приложения на выполнение каждой операции; Могут включать в себя логику приложения, передаваемую в рамках атомарных транзакций с использованием нескольких ресурсов |
На основе рассмотренных особенностей паттерном организации бизнес-логики была выбрана Модель предметной области.