0

我正在开发基于 DDD 的服务器端应用程序。

我的应用程序服务(wcf 层)有一个从客户端接收 XML 的方法。这个 XML 需要被处理并最终转换成一个对象。

在这种情况下,放置数据转换逻辑的最佳位置在哪里?在域模型内部?

例子:

void OnRequestArrived(string xml)
{
   ItemRequest request = ItemRequest.New(xml);
}

还是在单独的域服务中?

void OnRequestArrived(string xml)
{
  ItemRequest request = _mappingService.Map(xml);
}

ItemRequest 对象是业务流的主要领域模型。

谢谢

4

1 回答 1

0

此责任属于 WCF 服务。在 DDD 术语中,这是反腐败层——它将外部模型映射到手头的域模型。应尽可能保护域模型免受外部服务的影响。

有时将这个单一的 WCF 服务分成两部分会很方便 - 一个应用程序服务和一个 WCF 特定的适配器,它将使应用程序服务适应WCF 框架。这是基于六边形架构的。应用程序服务对 WCF 或序列化格式一无所知。WCF 适配器服务处理这个和其他序列化问题。出于两个原因,这可能很有用。首先,它使您的应用程序服务保持清洁并专注于其职责——域对象、存储库和其他服务的编排以实现域用例。其次,它允许从不同的适配器调用相同的应用程序服务。

于 2013-04-01T00:11:50.173 回答