怎么去分辨方法中需要传入什么参数呢
来源:4-10 用户模块剩余接口开发
weixin_慕设计6199974
2022-06-28 10:10:55

比如这个为什么要传入User 对象,传入role是不是也可以呢
对于方法的返回值怎么去确定他需不需要有返回值呢,在service 和dao层中怎么去判断
1回答
同学你好~
1.对于业务功能来讲,此处传入User和传入role值在本质上是没有区别的。
但是对于项目整体来讲,这两种方式是有区别的:
一般项目都是采用controller-Service-Dao的编码架构,而controller的职责是“接收请求参数、调用业务模块、返回响应数据”,而业务逻辑不应当出现在controller中,而是在Service中。
如果同学想要在方法参数直接使用role值,那么这个值的获取就需要在调用这个方法之前对role的值进行获取,显然的,这个值会在controller中进行处理,那么就违法了上面的各司其职的约定。
而如果使用User作为参数,controller中获取的请求参数可以通过调用另外一个Service获取封装的User对象,然后直接传递给check方法,controller中就没有数据处理的代码了,满足上面各司其职的约定。
综上,在设计Service的时候,应当做到尽量避免在controller中进行数据的处理,而是保持controller仅对数据进行传递。
2.对于是否需要返回值,返回值是什么类型来讲,实际上是没有定论的,因为要根据业务场景的需要进行设计。
在学习阶段,我们通常会根据业务流程进行设计,例如上层调用者对方法返回没有要求,那么可能就是void的不返回。上层调用者对数据有要求,那么尽量将数据封装成完整的对象进行返回,例如上层调用者要求获取密码时,我们也尽量返回完整的User对象而不仅仅是password数据,这样是为了后续开发时,不会因为这里的局限性而再次重构代码。
在工作时,通常返回值的类型在业务需求分析的阶段已经考虑了,并且在接口文档制定时已经确定了,所以不需要在编码时临时考虑,只需要严格遵守接口文档的约定即可。
祝学习愉快~
相似问题