跨多个域重用对象

时间:2016-06-08 07:54:24

标签: .net design-patterns asp.net-web-api

遵循Marin Fowler关于分布式对象的第一部法律:

My First Law of Distributed Object Design: Don't distribute your objects

这是我在使用Web API解决方案时使用的典型设置:

enter image description here

问题是存在大量复制,因为实体,pocos和模型看起来几乎相同,例外的是可能包含序列化属性的模型。这总是很好用,像valueInjecter这样的库使得类型之间的转换变得微不足道,但是对于其他人来说这种推理背后的理由是很复杂的。有人可能认为模型可能与表结构不同,虽然这可能是真的,但大多数情况下模型直接映射到实体/ pocos。

那就是说,你会使用共享库而只有一个吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您的设计出现了问题:

  • API和服务之间的内容不是POCO。它应该是实体。

  • API和浏览器之间的内容不是模型。它应该是DTO。

您只需在设计中维护实体和DTO。这样做的原因很明确:域模型(实体+服务)用于业务方面。 DTO用于沟通。