<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Feng.Li's Java See

    抓緊時間,大步向前。
    隨筆 - 95, 文章 - 4, 評論 - 58, 引用 - 0
    數據加載中……

    Java 觀察者模式

    網上商店中的商品在名稱、價格發生變化時,必須自動通知會員,Java的API為我們提供了Observer接口和Observable類來實現所謂觀察者模式。
      Observable(可觀察者)類允許在自身發生改變時,通知其它對象(實現接口Observer,觀察者)。
      下面是一個可觀察者(產品類):
    import java.util.*;
    public class product extends Observable{
       private String name;////產品名
       private float price;////價格

       public String getName(){ return name;}
       public void setName(String name){
        this.name=name;
       ////設置變化點
        setChanged();
        notifyObservers(name);////通知觀察者

       }   

       public float getPrice(){ return price;}
       public void setPrice(float price){
        this.price=price;
       ////設置變化點
        setChanged();
        notifyObservers(new Float(price));

       }

       ////以下可以是數據庫更新 插入命令.
       public void saveToDb(){
       System.out.println("saveToDb");
        }

    }

    下面是兩個觀察者:
    import java.util.*;
    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);

         }

          }
       }

    import java.util.*;
    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);

         }


       }

    }
    下面是測試類:
    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("applet");
        product.setPrice(9.22f);

       }
    }
    運行結果:
    C:\java>java  Test
    NameObserver :name changet to applet
    PriceObserver :price changet to 9.22

    posted on 2007-05-09 17:07 小鋒 閱讀(781) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲欧洲久久精品| 中国一级特黄高清免费的大片中国一级黄色片 | 九九久久精品国产免费看小说| 国产国拍精品亚洲AV片| 最近2019中文字幕免费直播| 亚洲JIZZJIZZ妇女| 亚洲av永久无码精品古装片| 永久免费av无码网站韩国毛片| 成人嫩草影院免费观看| 亚洲国产日韩在线一区| 亚洲精品无码永久在线观看| 免费观看美女用震蛋喷水的视频| 永久免费无码网站在线观看个| 亚洲国产成人综合| 激情97综合亚洲色婷婷五| 成人毛片18岁女人毛片免费看| a成人毛片免费观看| 亚洲欧美国产精品专区久久| 亚洲gv猛男gv无码男同短文| 国产美女精品视频免费观看| 99视频精品全部免费观看| 成人免费观看男女羞羞视频| 亚洲AV成人噜噜无码网站| 亚洲国产精品va在线播放| 亚洲成年人啊啊aa在线观看| 免费福利网站在线观看| 日本免费一区二区久久人人澡| 污网站在线观看免费| 亚洲人成在久久综合网站| 亚洲va久久久噜噜噜久久男同| 亚洲精品一级无码鲁丝片| 最近最新中文字幕完整版免费高清 | www.亚洲精品| 成年美女黄网站18禁免费| 免费国产污网站在线观看15| 久久久久久久久久免免费精品| 免费萌白酱国产一区二区| 4虎永免费最新永久免费地址| 大地影院MV在线观看视频免费| 瑟瑟网站免费网站入口| 亚洲av日韩精品久久久久久a|