如果从波苏斯DTO的或更好的不能导出?
-
13-09-2019 - |
题
当创建一个n层的解决方案,我不想暴露我的业务对象,但使用DTO的,而不是这个。在另一边,我不想双重定义对象和写复制代码所有的时间。
现在我的想法是编写包含所有必要的字段和属性,但没有逻辑(仅状态)DTO的。
然后,我会从那些DTO的派生我的业务对象,与我的业务逻辑扩展它们,在DTO基类性质的工作。这些目的也将是对象中所用(NHibernate的)的ORM持续存在。
通过这种方法,在服务器端,我可以对业务对象的工作,并直接转给客户(他们得到的,这样下来,浇注料)。我不会被迫暴露我的业务逻辑的方式,节省了大量的代码。
你觉得这种做法是明智的?
此致
塞巴斯蒂安
解决方案
您可能要考虑以下内容:
” ..., 因为<强>保持DTO不知情的 域对象,可以重用 在DTO在不同的上下文中。强> 同样的,你不想要的域名 对象了解的,因为DTO 这可能意味着的改变DTO 需要在不断变化的代码 域逻辑下,这将导致一个 维护的噩梦。
在最佳解决方案是使用汇编模式下,其产生从业务对象,反之亦然DTO的。汇编程序是在映射强>图案也企业应用架构模式 ....“
述的专门实例
另外,我还没有自己使用它,但你可能想看看 AutoMapper 为好。
其他提示
声音合理我。在LINQ to SQL,业务对象从DTO的通过使用部分类的衍生
“那我就从这些DTO的我的派生业务对象”都记住的DTO可能与BO不同,他们可能会从2或3 BO
包含属性不隶属于 StackOverflow