对我来说,关于 DTO/BO 的一个问题是何时通过/返回 DTO 以及何时通过/返回 BO。
我的直觉告诉我总是将 NHibernate 映射到 DTO,而不是 BO,并且总是传递/返回 DTO。然后每当我需要执行业务逻辑时,我都会将我的 DTO 转换为 BO。
我这样做的方式是,我的 BO 将有一个构造函数,该构造函数接受一个参数,该参数是我的 DTO 和 BO 都作为唯一参数实现的接口类型(定义所需的字段/属性)。
然后我可以通过在构造函数中传递 DTO 来创建我的 BO(因为两者都实现了相同的接口,它们都具有相同的属性),然后能够使用该 BO 执行我的业务逻辑。然后我也有办法将 BO 转换为 DTO。
但是,我也看到人们似乎只使用 BO,并且只在用户的后台使用 DTO,看起来好像没有 DTO。
与始终使用 BO 相比,这种架构有什么好处/缺点?
我应该总是传递/返回 DTO 或 BO 还是混合匹配(似乎混合和匹配会让人感到困惑)?