怎么去分辨方法中需要传入什么参数呢

来源:4-10 用户模块剩余接口开发

weixin_慕设计6199974

2022-06-28 10:10:55

https://img.mukewang.com/climg/62ba62f509181c3105570077.jpg

  1. 比如这个为什么要传入User 对象,传入role是不是也可以呢

  2. 对于方法的返回值怎么去确定他需不需要有返回值呢,在service 和dao层中怎么去判断

写回答

1回答

好帮手慕小蓝

2022-06-28

同学你好~

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数据,这样是为了后续开发时,不会因为这里的局限性而再次重构代码。

    在工作时,通常返回值的类型在业务需求分析的阶段已经考虑了,并且在接口文档制定时已经确定了,所以不需要在编码时临时考虑,只需要严格遵守接口文档的约定即可。

祝学习愉快~


0

0 学习 · 9886 问题

查看课程