1. 程式人生 > >第二次使用設計模式的思想(備忘錄模式)

第二次使用設計模式的思想(備忘錄模式)

null cep 修改 param ping set blog 有一個 昨天

  我們公司有個很牛逼的女生,是我們項目組的核心人物之一,一般我有啥不懂的就問她,就在昨天我們討論一件關於緩存的事情,我覺得在類中,用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標簽接收這個數據,然後又傳入到後臺,傳值傳的會想死。。
自從用了備忘錄模式,大家都說好,連一直否定我的這位小姐姐,也表揚我思路清晰,??

第二次使用設計模式的思想(備忘錄模式)