日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java 設計模式之Observer

瀏覽:212日期:2024-06-27 14:25:26
內容: Java深入到一定程度,就不可避免的碰到設計模式(design pattern)這一概念,了解設計模式,將使自己對java中的接口或抽象類應用有更深的理解.設計模式在java的中型系統中應用廣泛,遵循一定的編程模式,才能使自己的代碼便于理解,易于交流,Observer(觀察者)模式是比較常用的一個模式,尤其在界面設計中應用廣泛,而本站所關注的是Java在電子商務系統中應用,因此想從電子商務實例中分析Observer的應用.雖然網上商店形式多樣,每個站點有自己的特色,但也有其一般的共性,單就'商品的變化,以便及時通知訂戶'這一點,是很多網上商店共有的模式,這一模式類似Observer patern.具體的說,如果網上商店中商品在名稱 價格等方面有變化,如果系統能自動通知會員,將是網上商店區別傳統商店的一大特色.這就需要在商品product中加入Observer這樣角色,以便product細節發生變化時,Observer能自動觀察到這種變化,并能進行及時的update或notify動作. IMG http://www.jdon.com/designpatterns/images/observer1.jpg[/IMG]Java的API還為為我們提供現成的Observer接口Java.util.Observer.我們只要直接使用它就可以.我們必須extends Java.util.Observer才能真正使用它:1.提供Add/Delete observer的方法;2.提供通知(notisfy) 所有observer的方法;//產品類 可供Jsp直接使用UseBean調用 該類主要執行產品數據庫插入 更新public class product extends Observable{ private String name;private float price;public String getName(){ return name;}public void setName(){ this.name=name;//設置變化點 setChanged(); notifyObservers(name);} public float getPrice(){ return price;}public void setPrice(){ this.price=price;//設置變化點 setChanged(); notifyObservers(new Float(price)); }//以下可以是數據庫更新 插入命令.public void saveToDb(){.....................} 我們注意到,在product類中 的setXXX方法中,我們設置了 notify(通知)方法, 當Jsp表單調用setXXX(如何調用見我的另外一篇文章),實際上就觸發了notisfyObservers方法,這將通知相應觀察者應該采取行動了.下面看看這些觀察者的代碼,他們究竟采取了什么行動://觀察者NameObserver主要用來對產品名稱(name)進行觀察的public class NameObserver implements Observer{private String name=null;public void update(Observable obj,Object arg){if (arg instanceof String){ name=(String)arg; //產品名稱改變值在name中 System.out.println('NameObserver :name changet to '+name);}}}//觀察者PriceObserver主要用來對產品價格(price)進行觀察的public class PriceObserver implements Observer{private float price=0;public void update(Observable obj,Object arg){if (arg instanceof Float){ price=((Float)arg).floatValue(); System.out.println('PriceObserver :price changet to '+price);}}} Jsp中我們可以來正式執行這段觀察者程序:<%if (request.getParameter('save')!=null){ product.saveToDb();out.println('產品數據變動 保存! 并已經自動通知客戶'); }else{//加入觀察者product.addObserver(nameobs);product.addObserver(priceobs);%>//request.getRequestURI()是產生本jsp的程序名,就是自己調用自己<form action='<%=request.getRequestURI()%>' method=post><input type=hidden name='save' value='1'>產品名稱:<input type=text name='name' >產品價格:<input type=text name='price'><input type=submit></form><%} %> 執行改Jsp程序,會出現一個表單錄入界面, 需要輸入產品名稱 產品價格, 點按Submit后,還是執行該jsp的if (request.getParameter('save')!=null)之間的代碼.由于這里使用了數據javabeans的自動賦值概念,實際程序自動執行了setName setPrice語句.你會在服務器控制臺中發現下面信息::NameObserver :name changet to ?????(Jsp表單中輸入的產品名稱)PriceObserver :price changet to ???(Jsp表單中輸入的產品價格);這說明觀察者已經在行動了.!!同時你會在執行jsp的瀏覽器端得到信息:產品數據變動 保存! 并已經自動通知客戶 上文由于使用jsp概念,隱含很多自動動作,現將調用觀察者的Java代碼寫如下: public class Test {public static void main(String args[]){Product product=new Product();NameObserver nameobs=new NameObserver();PriceObserver priceobs=new PriceObserver();//加入觀察者product.addObserver(nameobs);product.addObserver(priceobs);product.setName('橘子紅了');product.setPrice(9.22f); }} 你會在發現下面信息::NameObserver :name changet to 橘子紅了PriceObserver :price changet to 9.22這說明觀察者在行動了.!! Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品免费一区二区夜夜嗨 | 欧美激情三区| 91成人精品视频| 日韩中文影院| 日韩av福利| 91亚洲国产| 免费观看久久av| 在线一区欧美| 国产99久久| 1024精品一区二区三区| 亚洲韩日在线| 爽好多水快深点欧美视频| 伊人精品一区| 国产亚洲一区在线| 日韩欧美中文字幕一区二区三区| 亚洲精品三级| 91精品99| 国内不卡的一区二区三区中文字幕| 91久久精品无嫩草影院| 免费在线日韩av| 日韩中文在线播放| 亚洲一区国产| 国产美女撒尿一区二区| 日本午夜精品一区二区三区电影| 国产精品亚洲综合久久| 日韩欧美少妇| 日韩av一区二区三区四区| 麻豆成人91精品二区三区| 激情婷婷欧美| 国产日韩视频| 天堂日韩电影| 欧美欧美黄在线二区| 亚洲成a人片| 欧美一区二区三区久久精品| 成人片免费看| 日韩av中文字幕一区二区三区| 欧美激情另类| 蜜臀va亚洲va欧美va天堂| 精品亚洲成人| 中文一区在线| 高清av一区| 欧美亚洲tv| 亚洲激情婷婷| 亚洲国产欧美日本视频| 日韩精品乱码av一区二区| 91精品韩国| 成人午夜网址| 欧美日韩一区自拍| 日韩在线观看一区二区| 国产h片在线观看| 国产精品自在| 亚洲精品福利| 亚洲欧洲日本mm| 久久亚洲国产精品尤物| 青草国产精品| 蜜臀av一区二区三区| 1024精品一区二区三区| 日韩国产综合| 久久99国产精品视频| 91精品国产自产在线丝袜啪| 免费观看久久久4p| 日韩中文视频| 亚洲午夜黄色| 欧美日韩国产一区二区三区不卡 | 亚洲成av在线| 正在播放日韩精品| 日韩一区亚洲二区| 日韩精品午夜| 黄色成人精品网站| 国产亚洲在线| 欧美一区=区| 久久亚洲不卡| 日韩一区精品| 国产精品久久久久久久久久齐齐 | 激情亚洲影院在线观看| 欧美中文字幕一区二区| 九色精品91| 欧美日韩一区自拍| 国内亚洲精品| 国产精品地址| 久久不见久久见免费视频7| 久久一区视频| 久久精品播放| 蜜臀av国产精品久久久久| 日韩不卡一区二区| 麻豆理论在线观看| 欧美日韩国产高清| 日韩av在线播放中文字幕| 国产精品99久久精品| 日本高清不卡一区二区三区视频| 欧美在线资源| 亚洲欧美在线专区| 国产精品成人a在线观看| 午夜欧美精品久久久久久久| 日韩国产欧美在线播放| 日韩精品诱惑一区?区三区| 久久xxxx精品视频| 国产91在线播放精品| 三级欧美在线一区| 国产亚洲精品美女久久| 热三久草你在线| 日韩成人精品一区二区三区| 欧美日韩一二| 国产美女亚洲精品7777| 久久69成人| 一区二区日韩免费看| 国产亚洲一卡2卡3卡4卡新区| 久久九九精品| 久久男人av| 欧美一区自拍| 亚洲综合五月| 999在线观看精品免费不卡网站| 国产精品xvideos88| 亚洲无线观看| 国产亚洲毛片在线| 香蕉精品久久| 久久影院午夜精品| 国产精品一区二区99| 亚洲网址在线观看| 中日韩男男gay无套| 久久精品亚洲人成影院| 久久av偷拍| 911亚洲精品| 18国产精品| 日韩高清不卡一区| 91高清一区| 不卡在线一区| 99国产精品| 一区免费在线| 亚洲免费在线| 久久一区二区三区喷水| 亚洲精品福利电影| 91亚洲国产| 亚洲va中文在线播放免费| 日韩高清欧美| 一区在线免费观看| 91精品亚洲| 狠狠干成人综合网| 色综合视频一区二区三区日韩| 美国三级日本三级久久99| 亚洲精品伊人| 国产精品日本一区二区不卡视频 | 精品一区二区三区中文字幕| 精品午夜av| 99成人在线视频| 人人精品人人爱| 欧美日韩va| 老牛国内精品亚洲成av人片| 老司机免费视频一区二区| 亚洲www啪成人一区二区| 五月精品视频| 欧美精品影院| 精品一区二区男人吃奶| 在线视频亚洲欧美中文| 亚洲毛片在线免费| 欧美久久香蕉| 久久精品1区| 日韩成人一级| 人人精品亚洲| 欧美日韩 国产精品| 91精品国产成人观看| 青青伊人久久| 激情91久久| 国产精品mm| 男女精品网站| 精品国产美女a久久9999| 国产精品婷婷| 成人精品动漫一区二区三区| 免费成人av在线播放| av中文字幕在线观看第一页| 中文字幕视频精品一区二区三区 | 日本中文字幕一区二区视频 | 欧美精品第一区| 亚洲欧美日韩在线观看a三区| 精品午夜久久| 一区二区高清| 尤物tv在线精品| 欧美aaaaaa午夜精品| 天海翼亚洲一区二区三区| 国产日产精品_国产精品毛片 | 麻豆精品99| 午夜久久av| 一区二区高清| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产91久久精品一区二区| 国产精品伦理久久久久久| 亚洲美女91| 亚洲欧洲av| 97久久亚洲| 青草国产精品| 国产视频一区二| 国产毛片精品| 国产精品密蕾丝视频下载| 日韩黄色av| 日韩欧美三区| 91欧美日韩在线| 日韩高清在线不卡| 日韩精品1区2区3区| 中文字幕一区二区三区在线视频| 视频一区欧美精品|