DDD:你们松散地结合实体有什么好理由?

时间:2009-04-09 16:00:29

标签: interface domain-driven-design loose-coupling

回到12月,有this post回答“可以使用concret类型[对于简单对象]”。

但是我一直看到越来越多的简单实体在示例项目中使用接口,甚至我刚刚控制的非常大的企业应用程序(计算89个接口并继续)。

是不是人们没有选择最好的方法,只是用“我的项目松散耦合!”来完成项目。接近?

或者,我错过了什么。我可以使用concret类型对我的IService,IFactory和IRepository implmentations进行单元测试(并且效果很好)。我还在构建我的第一个“反腐层”,用于从主域中抽象出许多这些第三方工具。这个反腐层有许多外墙,翻译器和适配器 - 所有这些都是松散耦合的(或计划的)。

那么,有没有关于具有接口的实体的遗漏?

public interface IContent
{
  Int32 ContentID {get; set;}
}

IList<IContent> list = new List();

编辑:我还应该提到,我拥有所有这些接口的企业应用程序没有单元测试。洛尔

1 个答案:

答案 0 :(得分:3)

更重要的是,责任的实体符合接口,而不是简单数据对象。如果您可以根据方法定义实体,那么,是的,您将从界面中受益。我无法看到在应用程序中简单地用作DTO的对象通过使用接口获得了很大的优势。

也就是说,在我看来,通过第三方工具或像L2S这样的框架来抽象掉“实体”肯定会带来好处。