我刚入职不久,新手上路。请各位多多指教别人做好的一个web项目(springMvc)要我继续加工。
我的工作就是把做好的手机端页面整合进此项目。userAction 里的一个方法 sendMessage()
主要功能就是给手机发个验证码。此方法完成后是跳转到一个pc端的页面。于是我就想主要的代码不用修改,只要在跳转页面的路径上下工夫即可。然后问题在这:sendMessage()中的代码很多,
第一部分是取参数做判断、处理和set参数给下个页面使用,此部分代码有10几行。第二部分是建立http连接去调用发信息的接口并且对结果做一些判断和处理。此部分代码有30几行。本来我的想法是就在他的类里加一个方法:@RequestMapping("/send_message_mobile")
public String sendMessage_mobile(){
String result=sendMessage();
return "去手机页面";
}这样的做法是不用写多少代码。但是要对每个action的每个方法都加多一个手机版的方法。这样会让类变臃肿,我觉得这样不太好。于是我想这样:public class UserAction_mobile extends UserAction{
@RequestMapping("/send_message_mobile")
@Override
public String sendMessage(){
String result=super.sendMessage();
return "去手机页面";
}
}但是启动报错, 想问公司的前辈,但他们很忙,只是说这样会路径重复之类的,我听不懂,第一次使用springmvc 。 疑难杂症暂不提它,
我放弃了这种做法。
最后。其实这也是我最先想到的办法
就是把代码抽到一个service中,这样就可以让UserAction_mobile不用继承UserAction来实现复用。
代码的第二部分是明显可以抽到一个MessageService中复用。
但是第一部分那些参数操作就让人纠结了:
1.代码也不少
2.要是放到service里的话就要传request和session这些东西过去,貌似不合理,有隐患。
3.如果第一部分不抽出来的话。那么在userAction_mobile.sendMessage()里又要重复第一部分的代码。
这该如何是好?
复用重构action参数request
我的工作就是把做好的手机端页面整合进此项目。userAction 里的一个方法 sendMessage()
主要功能就是给手机发个验证码。此方法完成后是跳转到一个pc端的页面。于是我就想主要的代码不用修改,只要在跳转页面的路径上下工夫即可。然后问题在这:sendMessage()中的代码很多,
第一部分是取参数做判断、处理和set参数给下个页面使用,此部分代码有10几行。第二部分是建立http连接去调用发信息的接口并且对结果做一些判断和处理。此部分代码有30几行。本来我的想法是就在他的类里加一个方法:@RequestMapping("/send_message_mobile")
public String sendMessage_mobile(){
String result=sendMessage();
return "去手机页面";
}这样的做法是不用写多少代码。但是要对每个action的每个方法都加多一个手机版的方法。这样会让类变臃肿,我觉得这样不太好。于是我想这样:public class UserAction_mobile extends UserAction{
@RequestMapping("/send_message_mobile")
@Override
public String sendMessage(){
String result=super.sendMessage();
return "去手机页面";
}
}但是启动报错, 想问公司的前辈,但他们很忙,只是说这样会路径重复之类的,我听不懂,第一次使用springmvc 。 疑难杂症暂不提它,
我放弃了这种做法。
最后。其实这也是我最先想到的办法
就是把代码抽到一个service中,这样就可以让UserAction_mobile不用继承UserAction来实现复用。
代码的第二部分是明显可以抽到一个MessageService中复用。
但是第一部分那些参数操作就让人纠结了:
1.代码也不少
2.要是放到service里的话就要传request和session这些东西过去,貌似不合理,有隐患。
3.如果第一部分不抽出来的话。那么在userAction_mobile.sendMessage()里又要重复第一部分的代码。
这该如何是好?
复用重构action参数request
解决方案 »
- S2SH框架整合的问题:sessionFactory 错误
- 简单的Junit测试
- Spring security的https安全登陆
- 新手请教关于学习JSP步骤的问题
- delphi作为客户端,xfire + spring 开发的ws-security客户端如何发送header?
- 在Ibatis里面如何实现级联删除?
- java.io.Serializable,一般是做什么用的啊?
- (救救我吧!)为什么我的Tomcat4.0老是不稳定???怎样配置???
- 工作流中的流程定义实体对象ProcessDefinitionEntity
- 怎么比较相似度,还得有关键字?
- NetBeans 怎么添加字体?
- java怎么写服务端
@RequestMapping("/send_message_mobile")
public String sendMessage(){
String result=new UserAction().sendMessage();
return "去手机页面";
}
}
public class UserAction_mobile{
@RequestMapping("/send_message_mobile")
public String sendMessage(){
String result=new UserAction().sendMessage();
return "去手机页面";
}
}
UserAction 里面有一些字段是要spring注入的。这样直接new不行。要先取bean工厂。
还有没有其他办法?
我问题的重点就是要在UserAction_mobile中最大程度的复用UserAction中的方法,具体看原题;之前的继承是为了更好的凸显出这两个类的关系。
因为UserAction_mobile就是对UserAction的扩展。
继承是因为报了错才放弃的。
大家对继承这个做法感觉怎样?是不应该这样做的还是可以继续往这方面走