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