小编san*_*ole的帖子

从域对象访问服务的规则

我正在比较从域模型使用服务(在Windsor IoC容器中的进程本地组件的意义上)的可能性.

我有3种方法来实现这个目标:

  1. 发布域事件并使用服务层代码处理它

  2. 通过模型对象上的方法注入服务

  3. 在模型对象中注入服务

(4.使用服务定位器)

第一个导致一个非常富有表现力和重复性的模式,为过程简单的任务创建一个过程风格的域事件和处理程序.但它具有最佳的模型与其所使用的环境的解耦(模型是自定义的).

第二个使方法参数更长并且看起来破坏了封装(如果模型对象的动作需要其他服务,则所有调用者都必须更改).

第三个将注入当前事务不需要的依赖项.此外,还需要"扩展"NHibernate.由于其他推荐阅读,我会避免这种方法.

由于我想在我们的文档中写这个,我需要告诉读者何时使用哪种方法.我正在思考"使用方法注入,如果你将域事件处理程序放入模型程序集"这一行,但它并没有真正达到目的.

对此规则的建议?

nhibernate domain-driven-design dependency-injection castle-windsor ioc-container

5
推荐指数
1
解决办法
227
查看次数