关于本节的 VO 的两个问题
来源:5-6 商户投放子系统 - 服务接口值对象定义

Poplar_hills
2019-12-15
老师好,
关于本节的 VO 我有两个问题:
我们 ErrorCode 枚举类中居然有 SUCCESS 这个 code,code 的含义与枚举类的含义直接相悖,真心认为这不是个好的设计。如果说只是为了演示,那么咱们项目里“为了演示”而妥协的设计实在是不少,那么这门“实战”课程的意义在哪里呢?我认为更好的方式是,在代码中给出最优的实现,如果最优的实现比较复杂,在视频中来不及讲解,那么只要讲清楚设计思路即可,具体细节的解释可以让大家参考代码中的注释或文档,再不行还可以在群里讨论。
咱们在 PassTemplate 这个 VO 中定义了 validate 方法用于验证惠券的有效性,想问一下老师,这个 validate 方法为什么要放到 VO 中而不是优惠券的 service 中?VO 是用于在业务和服务之间传递对象的,在它上面定义功能性方法似乎不是很合适?
谢谢!
1回答
-
同学你好:
我这里回答下你提出的两个问题。
1. 在 ErrorCode 中定义 Success 是再正常不过的事情了,我在工作中的业务代码、开源代码等等,都会有这样的设计。可以思考,Success 不定义在这里,是单独拿到一个枚举类中定义一个枚举值吗?这又体现了什么呢 ?代码会显得很冗余,而且多了一个类定义。(其实,写代码,更多的是理解业务思想,而不在于具体的实现)
2. 在 VO 中定义 validate 方法也是非常常见的设计,主要目的就是简单方便,且与 VO 自身贴合紧密。当然,写在 Service 中当然是可以的。但是,我似乎也说不出写在 Service 中好在哪里。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
212019-12-17
相似问题
回答 1
回答 1