【发布时间】:2011-02-23 23:54:18
【问题描述】:
在我正在开发的这个应用程序中,领域围绕着,比如说,电器。这个实体有几个专门的版本。设备可以提交给应用程序,这发生在使用数据传输对象的 Web 服务中。
虽然这很好用,但我现在也在考虑从几种基于文本的文件格式导入设备。考虑一下这个工作流程:
- 目录观察服务发现新的设备文件已添加
- 该服务使用我的应用程序中的应用程序服务来提交文件描述的设备
现在,应用程序服务可以有一个具有以下名称和签名的方法:ApplianceService.Register(string fileContents)。我认为目录观察服务将使用此服务方法并将文件的全部内容传递给它。然后应用程序服务将协调解析。解析文件的内容并将其转换为完整的设备实体涉及几个步骤。现在,我的问题是:
问题:这是正确的,还是解析逻辑应该存在于目录观察服务中?每种类型的文件格式都是一种域的一部分,但话又说回来,它不是。在将文件从任一格式解析为实体后,实体将永远不会知道它曾经使用该格式表示过。如果解析逻辑应该存在于观察者服务中,我会将新设备作为数据传输对象传递给注册服务。
我想我关心的是设备在进入我的应用程序之前应该如何表示(使用应用程序层作为入口点)。从 Web 服务提交设备时,我传递了一系列设备数据传输对象。这与获取可能格式不正确的文件并将其解析为数据传输对象不同,因为从 Web 服务请求到数据传输对象的映射非常简单,而且并不复杂。
非常欢迎对此提出任何想法。
【问题讨论】:
标签: parsing domain-driven-design separation-of-concerns