寒风逝流 2018-07-11 12:58 采纳率: 50%
浏览 1016
已采纳

关于代码编写规范的疑问,spring mvc 控制层一段代码被多次复制重用,如何设计优化

业务逻辑大概如下:
功能:用户留咨保存功能
视图层:留咨界面,用户填写信息
控制层:校验数据合法,并依据request从cookies中取出用户城市站、usertraceId等信息,根据request请求头判断设备类型。最终封装实体调用入库接口。
服务层:验重、保存数据。
问题:
控制层做入参校验理所当然,没有问题。现在问题来了,此控制器承载多方留咨请求,,绝大部分业留咨务都可以直接请求,变化来了,在另一种业务条件下,如领优惠券,产品提了需求,要求用户领券成功之后在再调用用户留咨接口。我初始想在领券控制器中判断,成功后直接调用用户留咨控制器,避免一系列参数校验逻辑再写一遍,也不用再重写从request里面获取cookies等方法。但是考虑到mvc的设计,不应该控制层调取控制层(redirect除外)但是不调用,着一系列的逻辑我又要重写一份。又想到把校验逻辑和取cookies和设备信息放到service层,但是需要操作request,request是控制层操作的,如果把request带到服务端,那样也破坏了编码规范,至少这个服务类方法的test ng你都很难跑。不能new一个request对象吧。
所以不知道如何设计才好?难道我还是要把校验等代码复制一份?求探讨指教

  • 写回答

3条回答 默认 最新

  • bayuemu 2018-07-11 13:10
    关注

    验证的事情交给拦截器去做

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值