1

是否有可能使用DDD和丰富的域模型,如果你的应用程序是这样的:我可以在WCF中使用丰富的域模型吗?

  • Windows客户端(WPF)
  • 窗口服务

和沟通与WCF发生什么呢?

我以前只有数据状态的DTO,并且在服务层有业务规则,但是每个人都告诉我应该有一个丰富的域模型,其中数据状态和规则/方法都在对象中他们自己。

我只是不确定这个丰富的域模型是否适用于具有UI并通过WCF与服务进行通信的系统(就像我上面介绍的那样)。在我的情况下,继续使用WCF的贫血域模型会更好吗?如果没有,请给我一个关于如何使用丰富的域模型构建它的例子,考虑WCF,代理等?

谢谢!

回答

3

一般而言,您将序列化您的域对象以通过WCF进行传输,就像一些简化的DTO一样,而这正是您的客户端应用程序所使用的。

您可以serialize user defined types并在客户端反序列化它们,但对于大多数应用程序来说,这是不必要的。只要你不需要客户对象的“丰富”行为(无论如何你都不应该拥有一个好的DDD),这听起来像你可以在你的服务层使用丰富的设计并且通过电线发送简单的DTO。

+0

谢谢肉体。在这种情况下,我会重复定义。例如,对于用户,我将拥有一个用户域对象(具有数据状态和方法)以及一个用户DTO(仅具有数据状态)。这是一件好事还是可以接受的事情?谢谢 – Name123 2009-11-30 20:54:27

+0

是的,没关系。实际上,这通常是您用来支持Web服务和智能客户端应用程序之类的模式。我使用类似的模式 - 将状态包/ DTO传递给客户端,并在域中使用更丰富的模型,以便封装行为。 – flesh 2009-11-30 23:17:17

+2

@flesh:“......只要你不需要你客户中的对象的'丰富'的行为(无论如何你都不应该拥有一个好的DDD)......”。这是一个非常苛刻的限制!你是否建议客户端PC不应执行逻辑? – 2009-12-01 10:45:38

相关问题