我开发了一个具有以下层的应用程序:
- 基于fluent nHibernate的数据访问层
- 商业规则
- 活动层(比业务规则更抽象,使用一些业务规则)
- 基于 WCF 的服务层,向外界发送一些 DTO 并接收 DTO。
所以当一些 DTO 回来时,我可以将 DTO 映射到服务层中的业务对象,并使我的应用程序与业务对象一起工作。在这种情况下,当较低层中的某些函数执行时,它对旧对象一无所知,因此很难处理和验证状态变化,并且 DTO 适配器也存在类爆炸。另一方面,如果 dto 映射到较高层的业务对象,当它下来时,较低层对被调用的服务一无所知,因此他们无法理解这个 dto 必须如何更改业务对象(1 DTO 可能被不同的服务以不同的方式使用)
所以问题是真正的解决方案是什么?