函数封装

小小Java人 2020-07-21 12:57:47
说明:这里每个case里的函数功能都一样(vo对象转成实体对象,根据主键删除,再插入数据),只是操作的表不同
问:这个case要怎么封装?


封装成这样:
switch(param){
case xxx: func(param1,param2);break;
case yyy:func(param3,param4);break;
}

求各位大佬解答!!
...全文
392 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2020-07-21
  • 打赏
  • 举报
回复
引用 4 楼 小小Java人 的回复:
形参用Object嘛?参数传进来之后用instance of 一个一个去判断是什么类型嘛?判断完之后再去操作? 外面就有个switch 里面自己写的函数又一个一个去判断,总感觉不怎么好
你要封装,在转化实体前就要生成泛型接口,用接口来实现。
作妖的程序员 2020-07-21
  • 打赏
  • 举报
回复
case里面对象转换是不同的 只有后面的两步相同

case "xx":{
   AsGx...  asGc = con....(vo);
   doSomething(asGc);
   break;
}
case "xxx":{
    AsGx...  asGc = con....(vo);
   doSomething(asGc);
   break;
}
case "xxxx":{
   AsGx...  asGc = con....(vo);
   doSomething(asGc);
   break;
}

....

public void doSomething (AsGc...  asGc){
   delete.....(asGc);
   result += ........insert(asGc);
}
Dynamic.xie 2020-07-21
  • 打赏
  • 举报
回复
可以把这几个对象关联的表名和对象名放在一个map里面,在方法里面拿么.既然你要封装方法,那么要么传参进去方法之前做一下判断,要么在方法里面做判断.个人认为在方法里面做判断更好一点.这样重复代码会降低吧
小小Java人 2020-07-21
  • 打赏
  • 举报
回复
形参用Object嘛?参数传进来之后用instance of 一个一个去判断是什么类型嘛?判断完之后再去操作? 外面就有个switch 里面自己写的函数又一个一个去判断,总感觉不怎么好
qq_39936465 2020-07-21
  • 打赏
  • 举报
回复
引用 2 楼 小小Java人 的回复:
他们操作的是不同的表,只是操作逻辑是一样的。操作的对象都不同。怎么封装起来?
操作对象作为方法的传入参数
小小Java人 2020-07-21
  • 打赏
  • 举报
回复
他们操作的是不同的表,只是操作逻辑是一样的。操作的对象都不同。怎么封装起来?
qq_39936465 2020-07-21
  • 打赏
  • 举报
回复
引用 楼主 小小Java人 的回复:
说明:这里每个case里的函数功能都一样(vo对象转成实体对象,根据主键删除,再插入数据),只是操作的表不同 问:这个case要怎么封装? 封装成这样: switch(param){ case xxx: func(param1,param2);break; case yyy:func(param3,param4);break; } 求各位大佬解答!!
把程序块写入方法里,case里直接调用该方法。

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧