2 w15868676598 w15868676598 于 2016.09.22 16:19 提问

java 设计之相同业务代码重构问题 1C

最近在做一些代码的重构,就比如代码的冗余来说,比如说有3个service写的代码基本全部相同,就是根据传递的参数type值不同而返回的数据结果不同,这种情况我们该如何去进行代码的抽离,需要进行重新设计,希望大神门给点独特的建议,详细介绍:
就比如这段代码,sort是类型有:1、2、3值,category有:4、5、6值,就是这个sort和category有值传的不同,返回结果不同,不想3个service都写一样的代码,太冗余了。
代码如下:
String json = testService.get(param, json,sort);
List list = demoService.select(category);
...
...
...
方案:1、我能想到的就是把这代码新建了一个抽象类,3个service去继承他
2、用适配器
3、写一个baseservice类,3个service起引用依赖baseservice。
ps:求大神帮忙,小弟刚用这个csdn,没有币,大家担待下。

4个回答

seeze
seeze   2016.09.22 18:09

按照面向对象思路来说,我认为你不应该在control层做OO,而是应该做到Model层去
就是用一个service,根据不同type去调用不同的对象类的操作,这些对象类上可以做抽象继承

yeyincai
yeyincai   2016.09.23 09:17

service去dao获取信息,用stream.filter去过滤,不需要搞的这么麻烦

w15868676598
w15868676598   2016.09.23 09:22

这个代码是写在service层而不是control层的,这个service引用了testService和demoService。

ios_king
ios_king   2016.09.23 12:06

建议在service 层 根据条件进行 判断再进行方法调用的分化,方法可以定义在service 层的实现类中

Csdn user default icon
上传中...
上传图片
插入图片