欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第二次使用设计模式的思想(备忘录模式)

程序员文章站 2022-04-16 10:21:41
我们公司有个很牛逼的女生,是我们项目组的核心人物之一,一般我有啥不懂的就问她,就在昨天我们讨论一件关于缓存的事情,我觉得在类中,用static定义的引用变量就是缓存(因为在以前的公司就这么叫),而她认为这并不是,这个只是存在内存里的,这只是一个成员变量,所以他觉得只能叫变量,牛逼的大佬们你们觉得叫什 ......

  我们公司有个很牛逼的女生,是我们项目组的核心人物之一,一般我有啥不懂的就问她,就在昨天我们讨论一件关于缓存的事情,我觉得在类中,用static定义的引用变量就是缓存(因为在以前的公司就这么叫),而她认为这并不是,这个只是存在内存里的,这只是一个成员变量,所以他觉得只能叫变量,牛逼的大佬们你们觉得叫什么呢?

  闲话不多说,咱先看代码:

  需求:因为客户反应,每次在页面删除或者编辑的时候,总是跳到起始页面,不能返回到他们操作前的页面上去,所以希望有一个功能可以让我在当前页面做的任意操作,只要不关闭这个页面的情况下,都保留查询条件和页数,跟操作前一样。

  思路:这还用想,备忘录模式走起啊!!

  代码:

  private static Map<String,Object> map = new HashMap<String,Object>();//定义一个备忘录
  
public void remenber(OdsXsXscb odsXsXscb){//截取使用备忘录代码
  String flag = request.getParameter("search");//如果查询进来的flag就有值否则为空
if(odsXsXscb.getId()==null&&flag==null){//如果不是查询进来的
OdsXsXscb param = (OdsXsXscb) map.get(ses.getId());//从备忘录中取值
if(param == null){//如果备忘录中没有值
odsXsXscb.setException("1");//给个默认的搜索条件的值
}else{//如果有值
odsXsXscb = param;//将备忘录中的值取出来给与参数
}
}else{//如果是查询进来的则保存入备忘录后不做任何操作
map.put(ses.getId(),odsXsXscb);
}
}
@RequestMapping(value = "clear")
public void crearParam(HttpSession ses){
map.remove(ses.getId());//如果关闭窗口则移除备忘录记录
}

我觉得这个模式使用后好方便,本来的想法是再删除的时候或者是修改的时候,都把数据拼接到地址后面,然后通过搜索条件用用input标签接收这个数据,然后又传入到后台,传值传的会想死。。
自从用了备忘录模式,大家都说好,连一直否定我的这位小姐姐,也表扬我思路清晰,