Как мне реализовать мой уровень бизнес-логики? - PullRequest
1 голос
/ 30 декабря 2010

Допустим, у меня есть приложение, которое на 80% сложнее бизнес-логики и на 20% CRUD, или наоборот.

В прошлом я использовал какой-то шаблон команд и имел классы, такие как ComplexFooCMD или EvenMoreComplexBarCMD, но всегда заканчивался набором InsertFoo, UpdateFoo, DeleteFoo и SelectFoosCMD и несколько из UpdateSomeValuesOfFoo или SelectSomeFoos. Все они жили в БЛЛ.

Недавно в менее сложных приложениях бизнес-логики я использовал шаблон службы с классами, такими как FooService, но они также содержат ожидаемые insertFoo, updateFoo и selectSomeFoo. Наличие этих методов в каждом сервисе или даже наличие сервисов, которые существуют только для представления этих методов на уровне представления, ощущается как большой код базовой платы.

Существует ли какой-либо шаблон, который подходит как для части CRUD, так и для остальной части приложения, или я должен использовать разные шаблоны для разных частей приложения?

Ответы [ 2 ]

0 голосов
/ 30 декабря 2010

Я настоятельно рекомендую прочитать о поведенческой разработке .Я думаю, что он направит вас в правильном направлении.

Лучшая книга, которую я прочитал по этому вопросу, - Книга RSpec , но если вы сильно отстанетеиз примеров, ориентированных на Ruby, вы можете захотеть взглянуть на другие ресурсы, основанные на вашем любимом языке.

Короче говоря, ответ на ваш вопрос таков: пусть ваши тесты определяют вашу архитектуру, и пусть требуемое поведение вашего приложения направляет ваштесты.

0 голосов
/ 30 декабря 2010

Я бы не считал CRUD бизнес-правилами.

Я не уверен, что существует такой шаблон правил, как «Дайте предпочтительным клиентам процентную скидку, которая является функцией их объема продаж на сегодняшний день длягод "или" не отображать эту опцию в пользовательском интерфейсе для клиентов, чей корпоративный адрес находится в этом списке состояний ".

Бизнес-правила не всегда такие аккуратные.

...