【发布时间】:2016-01-21 14:28:32
【问题描述】:
有一个客户端服务应用程序使用 WCF 构建面向服务的架构,并使用 DDD 在服务内部构建域层。
在域层中有一个域对象Customer 和方法:
- 更改电话和地址
Customer.Relocate(Phone, Address) - 将销售经理分配给客户
Customer.Assign(SalesManager) - 给客户打折
Customer.Make(Discount)
由于此域层在 WCF 服务中使用,CustomerService 是使用服务方法创建的:
CustomerService.Relocate(CustomerID, PhoneDTO, AddressDTO)CustomerService.Assign(CustomerID, SalesManagerID)CustomerService.MakeDiscount(DiscountDTO)
这些方法验证参数、请求域对象并调用域对象方法以应用业务逻辑。
问题在于它看起来像大量的代码重复,因为 WCF 服务方法几乎 (90%) 与具有参数的域层方法相同,以 ID 和 DTO 表示。
- 当 WCF / SOA 与 DDD 一起使用时,这种方法重复是否总是发生?
- 有没有办法让这个瘦 WCF 服务层从域层自动构建?
- 还有其他想法吗?
【问题讨论】:
-
你的服务方法签名和客户类方法签名不同。所以这当然是不可避免的。将您的服务类想象成 Adpater,它对输入进行一些操作并向 Adaptee 提供兼容的输入。
标签: wcf architecture domain-driven-design soa