本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          隨筆-230  評論-230  文章-8  trackbacks-0

          Observer 的定義:
          ???? 當(dāng)被觀察的對象特定屬性改變時,就通知被它的觀察對象。
          在這個模式中就兩個角色一個是被觀察者,一個是觀察者。當(dāng)被觀察者做了某些改變時就通知它的觀察者。一個被觀察對象可以有N個觀察者。java.util.*包中已經(jīng)實現(xiàn)了這種模式。請參考如下例子:
          package com.pdw.pattern;

          import java.util.*;

          class Product extends Observable{//被觀察者必繼承于Observable
          ?
          ?private String pname;
          ?private float price;
          ?
          ?public String getPname() {
          ??return pname;
          ?}
          ?public void setPname(String pname) {
          ??this.pname = pname;
          ??setChanged();
          ??notifyObservers(pname);
          ?}
          ?public float getPrice() {
          ??return price;
          ?}
          ?public void setPrice(float price) {
          ??this.price = price;
          ??setChanged();
          ??notifyObservers(new Float(price));
          ?}
          }
          class NameObserver implements Observer{ //觀察者必須實現(xiàn)Observer接口

          ?public void update(Observable arg0, Object arg1) {
          ??if(arg1 instanceof String){
          ???System.out.println("產(chǎn)品名--->"+arg1);
          ??}
          ?}
          ?
          }
          class PriceObserver implements Observer{

          ?public void update(Observable arg0, Object arg1) {
          ??if(arg1 instanceof Float){
          ???System.out.println("產(chǎn)品價格是->"+arg1);
          ??}
          ?}
          ?
          }
          public class ObserverImpl {

          ?/**
          ? * @param args
          ? */
          ?public static void main(String[] args) {
          ??// TODO Auto-generated method stub
          ??Product p=new Product();
          ??p.setPname("電腦");
          ??p.setPrice(Float.valueOf("5632.6"));
          ??NameObserver no=new NameObserver();
          ??PriceObserver po=new PriceObserver();
          ??p.addObserver(no);
          ??p.addObserver(po);
          ??p.setPname("筆記本電腦");
          ??p.setPrice(Float.valueOf("9635.5"));
          ?}

          }

          posted on 2006-07-10 23:05 有貓相伴的日子 閱讀(287) 評論(0)  編輯  收藏 所屬分類: Patterns
          本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          主站蜘蛛池模板: 准格尔旗| 道真| 普安县| 洮南市| 偏关县| 苗栗市| 鹿邑县| 阜宁县| 应城市| 桃江县| 紫阳县| 石景山区| 汽车| 昆山市| 锡林郭勒盟| 顺义区| 靖州| 手机| 潼南县| 民丰县| 泸水县| 镇雄县| 平江县| 星子县| 朝阳区| 永宁县| 梓潼县| 浮山县| 莎车县| 济宁市| 蓬莱市| 平昌县| 太湖县| 海南省| 克什克腾旗| 玉溪市| 三穗县| 聂荣县| 西乌珠穆沁旗| 合川市| 德江县|