2016-06-08 69 views
0

继马林Fowler的分布式对象第一定律重用对象:跨多个域

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

这是使用Web API解决方案的工作时,我的常用设置:

enter image description here

的问题在于存在大量复制,因为实体,pocos和模型看起来几乎相同,例外的是可能包含序列化属性的模型。这一直运行良好,像ValueInjecter这样的库可以在类型之间进行转换,尽管如此,向其他人辩解后面的理由却很复杂。有人可能会争辩说,这些模型可能与表格结构不同,尽管这可能是正确的,但大多数时候模型直接映射到实体/ pocos。

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

谢谢。

回答

0

有什么不对您的设计:

  • API和服务之间有什么不POCO。它应该是实体。

  • API和浏览器之间的不是Models。它应该是DTO。

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