方法1.
@RequestMapping(value="/getProfessor")
public @ResponseBody List<Object> getMember(HttpServletRequest request){
HttpSession session = request.getSession();
HashMap user = (HashMap)session.getAttribute("USER_INFO");
Map<String, Object> param = new HashMap<String, Object>();
param.put("phone", (String)user.get("PHONE");
ReportManager manager = new ReportManager();
List<Object> list = manager.getProfessor(param);
}
方法2。
@RequestMapping(value="/getMember")
public @ResponseBody List<Object> getMember(HttpServletRequest request){
HttpSession session = request.getSession();
HashMap user = (HashMap)session.getAttribute("USER_INFO");
Map<String, Object> param = new HashMap<String, Object>();
param.put("phone", (String)user.get("PHONE");
ReportManager manager = new ReportManager();
List<Object> list = manager.getMember(param);
}
上面的代码简要描述了我如何获得成员和教授的名单。 除了URL和最底层的方法之外,这两种方法具有完全相同的代码流。如您所知,OOP的核心原则之一是“结合重复问题”。所以,重点是我想将这些方法合并到一个方法中。
答案 0 :(得分:1)
将网址更改为更为通用的网址,例如/getUser
。
在请求中传递TYPE
个PROFESSOR/MEMBER
个参数。根据{{1}},您可以在控制器方法中查询两种不同的方法。
答案 1 :(得分:1)
public Map<String, Object> getParams(HttpServletRequest request){
HttpSession session = request.getSession();
HashMap user = (HashMap)session.getAttribute("USER_INFO");
Map<String, Object> param = new HashMap<String, Object>();
param.put("phone", (String)user.get("PHONE");
}
@RequestMapping(value="/getProfessor")
public @ResponseBody List<Object> getMember(HttpServletRequest request){
ReportManager manager = new ReportManager();
List<Object> list = manager.getProfessor(this.getParams(request));
}
@RequestMapping(value="/getProfessor")
public @ResponseBody List<Object> getMember(HttpServletRequest request){
ReportManager manager = new ReportManager();
List<Object> list = manager.getProfessor(this.getParams(request));
}
答案 2 :(得分:1)
同意您的意见,根据DRY编码原则,不建议复制相同的代码。 您可以使用单个RequestMapping和某种查询参数OR 将公共代码移动到不同的方法,并从两个方法调用它。