验证和服务层或业务对象?

8 csla design-patterns business-objects

Martin Fowler建议使用服务层作为域模型和"数据加载器"之间的边界.但是,Rockford Lhotka建议在业务对象本身中构建验证,这正是CSLA.NET所做的.

将此抽象到服务层的好处显然是您的服务层可以跨多个业务对象协调活动/操作.但是,使用服务层而不是直接使用业务对象进行业务逻辑和验证有哪些其他优点和缺点?

Jam*_*ght 3

我肯定属于洛基·洛特卡(Rocky Lhotka)的阵营。我相信您的业务对象应该很容易在应用程序和 UI 层之间“移植”。添加额外的“服务层”很可能会增加对对象的依赖性,从而降低它们的“可移植性”。

如果正确编写业务对象框架,您的业务对象应该能够正确处理各种业务对象之间的验证。CSLA.NET 通过父/子关系以及依赖属性验证的概念正确地做到了这一点。