cha*_*dra 7 dns domain-driven-design
我想在我的域驱动设计项目中使用外部第三方Web服务,但我无法理解我应该在哪个层访问外部Web服务.在域服务中但我不这么认为,因为域服务仅适用于域对象.但我的要求是,我必须根据外部webservice的输入执行操作列表,我必须在域服务中执行另一项任务.我很迷惑.
您可以做的是,在您的域项目中根据您的域模型引入所需服务的界面.每当您的域中的某个类需要该服务时,您都会向其传递对此接口的实现的引用.
然后创建一个"连接器实现",它实现此接口并连接到您需要使用的Web服务.当您启动应用程序时,您将为域类提供此实现,例如使用依赖项注入框架.
此连接器具有对您的域模型和Web服务定义的引用.您的域模型没有引用连接器实现或Web服务 - 它只知道域项目中定义的接口.这称为控制反转.
这样,您的域类对Web服务一无所知,只了解您在域模型中定义的接口.因此,您的域逻辑与"邪恶的"外部世界保持分离.
据我猜测,您需要使用外部 Web 服务来执行某些操作。如果对于操作来说,您指的是您的业务逻辑,我认为正确的位置应该是您的业务逻辑层。在您的上下文中,您只需要使用它们即可。如果您需要计算产品价格,您会在哪里调用计算增值税的外部 dll?
我希望这是有道理的:-)
| 归档时间: |
|
| 查看次数: |
4782 次 |
| 最近记录: |