Являются ли объекты службы, сценарий транзакции и шаблоны разработки стратегии одинаковыми?
Я не смог найти никакого определения шаблона проектирования Service Object.
Шаблон проектирования сценария транзакции
Организует бизнес-логику по процедурам, где каждая процедура обрабатывает один запрос из презентации.
Шаблон дизайна Стратегии
Определите семейство алгоритмов, инкапсулируйте каждый и сделайте их взаимозаменяемыми. Стратегия позволяет алгоритму варьироваться независимо от клиентов, которые его используют.
Они похожи / равны?
1 ответ
Это определение шаблона уровня сервиса: http://martinfowler.com/eaaCatalog/serviceLayer.html
Уровень обслуживания описывает варианты использования системы. Эти варианты использования реализованы в виде сценария транзакции. Однако паттерн Transaction Script - это другой зверь - это способ организации бизнес-логики системы. Поэтому, хотя они похожи, намерения разные. Вы можете реализовать бизнес-логику в виде Active Record или Domain Model, но уровень обслуживания все равно будет напоминать сценарий транзакции.
Шаблон стратегии предназначен для инкапсуляции взаимозаменяемых алгоритмов, которые используются внутри сценариев использования системы.
Я настоятельно рекомендую прочитать классическую книгу "Шаблоны архитектуры корпоративных приложений", чтобы хорошо понять эти шаблоны.