Являются ли объекты службы, сценарий транзакции и шаблоны разработки стратегии одинаковыми?

Я не смог найти никакого определения шаблона проектирования Service Object.

Шаблон проектирования сценария транзакции

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

Шаблон дизайна Стратегии

Определите семейство алгоритмов, инкапсулируйте каждый и сделайте их взаимозаменяемыми. Стратегия позволяет алгоритму варьироваться независимо от клиентов, которые его используют.

Они похожи / равны?

1 ответ

Решение

Это определение шаблона уровня сервиса: http://martinfowler.com/eaaCatalog/serviceLayer.html

Уровень обслуживания описывает варианты использования системы. Эти варианты использования реализованы в виде сценария транзакции. Однако паттерн Transaction Script - это другой зверь - это способ организации бизнес-логики системы. Поэтому, хотя они похожи, намерения разные. Вы можете реализовать бизнес-логику в виде Active Record или Domain Model, но уровень обслуживания все равно будет напоминать сценарий транзакции.

Шаблон стратегии предназначен для инкапсуляции взаимозаменяемых алгоритмов, которые используются внутри сценариев использования системы.

Я настоятельно рекомендую прочитать классическую книгу "Шаблоны архитектуры корпоративных приложений", чтобы хорошо понять эти шаблоны.

Другие вопросы по тегам