VO 这层是否需要

来源:5-13 推广计划服务功能实现(1)

qq_补碗匠_0

2019-01-27

老师您好 我想问问VO 这个是否需要?
我自己已经查了很多资料 我想听听您的看法

写回答

2回答

张勤一

2019-01-28

同学你好:

    VO 对象建议是需要的,而且是比较好的编程规范,主要考虑到下面的几点:

    1. 面向对象的思想,一切皆对象,将零散的属性封装成对象,更容易传递(入参);

    2. 良好的封装性影响代码的可用性。即使前端/客户端的代码发生变化,服务端的代码可以大部分保持不变,同样对外暴露的是 VO 对象(只是增减属性),这样接口文档的变化也会非常小;

    3. VO 对象还对日志打印存在影响,因为直接将 “一整个” VO 对象序列化成日志字符串(例如 JSON 格式)方便后期的核对,而不是零散的几个属性,需要分别去辨别。


欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

3
1
qq_补碗匠_0
非常感谢!
2019-01-29
共1条回复

慕标0528395

2019-02-21

老师您好,之前写代码就写个entity就行了,传递参数也用的entity,课程里面用了VO,是不是entity和VO有些重复。

2
1
张勤一
同学你好: 1. VO 和 Entity 是两个概念,一个表达的是服务之间的对象传递,另一个表达的是数据表结构的定义; 2. VO 和 Entity 并不重复,即使很多字段是相同的。但是由于其适用的场景不同,最好是分开定义。如果 Entity 能够满足服务之间数据信息的传递,可以考虑不定义 VO 对象。 欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
2019-02-21
共1条回复

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程