controller 接受的 VO,一时有人说是 view object, 一时有人说是 value object. 文章抄来抄去,不知道哪个对。
传进 service 层的时候到底是进来的时候就转换成 dto,还是把 vo 作为入参。返回出去的时候到底是返回一个 dto,还是返回一个 VO?
service 层之中 例如远端返回一个复杂 json,然后我就选了几个参数作为一个暂时对象。但这对象我也不准备直接返回出去,而是打算再和其他数据聚合,再返回甚至不返回。那么这个暂时的对象,他是属于 VO 吗,还是属于 dto 什么的。 这个暂时对象是作为内部类写在同一个文件里呢,还是分类为什么对象呢。这个命名的问题也困扰了我很久。
@golangLover 我更习惯 controller 接收 xxRequest 直接透传到 service 在 service 中转为 xxEntity 向下都使用 xxEntity ;如果是查询的 service 会封装一个 xxFacade 比如 userService 可能就会返回 userFacade ;
liaojl
2021-07-16 12:37:44 +08:00
map 一把梭🐶
Joker123456789
2021-07-18 15:59:34 +08:00
简单粗暴的理解一下就行了。
Controller 进出都是 VO,为的是 一旦前后端的交互数据有了改动,只需要改 controller 就行了,不需要去动 service 。 Service 进出都是 DTO,为的是 业务逻辑内部发生变化,跟外界无关,反正入参出参没改。 DAO 就要看情况了,如果是多表查询 一次返回多个表的字段作为一个数据集,为了数据结构的清晰 可以用 DTO 。其他情况基本进出都是 PO 。
但是 绝非雷打不动的,实际开发中可以酌情处理。
golangLover
2021-07-19 01:25:03 +08:00
@xuanbg 例如在 service 里用一些方法例如 reduce 啊 groupby 之类的。那这种操作可能我会拆分一些方法,因为他们可能比较长,方法总有返回值吧,那这些返回值是什么类型的 o 呢