1.当重复代码存在于同一对象中时——抽取方法
假如被比较的两份或多份代码存在于同一个对象中,则将这段抽取出来的函数作为它们共同的函数,为其他各份代码所调用。比如:
/**
* 通过DWR获取当前的request、response、session等信息
* @author fangang
*/
public class DwrContext {
/**
* @return 当前的Request
*/
public static HttpServletRequest getRequest(){
return WebContextFactory.get().getHttpServletRequest();
}
/**
* @return 当前的Reponse
*/
public static HttpServletResponse getResponse(){
return WebContextFactory.get().getHttpServletResponse();
}
/**
* @return 当前的Session
*/
public static HttpSession getSession(){
return WebContextFactory.get().getSession();
}
}
采用“抽取方法”将重复段抽取出来,放进getContext()函数中。
/**
* 通过DWR获取当前的request、response、session等信息
* @author fangang
*/
public class DwrContext {
/**
* @return DWR的WebContext
*/
private static WebContext