本站不再更新,歡迎光臨 java開發技術網
          隨筆-230  評論-230  文章-8  trackbacks-0

          Observer 的定義:
          ???? 當被觀察的對象特定屬性改變時,就通知被它的觀察對象。
          在這個模式中就兩個角色一個是被觀察者,一個是觀察者。當被觀察者做了某些改變時就通知它的觀察者。一個被觀察對象可以有N個觀察者。java.util.*包中已經實現了這種模式。請參考如下例子:
          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{ //觀察者必須實現Observer接口

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

          ?public void update(Observable arg0, Object arg1) {
          ??if(arg1 instanceof Float){
          ???System.out.println("產品價格是->"+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開發技術網
          主站蜘蛛池模板: 巴林左旗| 吉林省| 盱眙县| 岳普湖县| 桑日县| 武宣县| 浮山县| 彭州市| 石棉县| 古交市| 海宁市| 获嘉县| 会宁县| 大安市| 准格尔旗| 福安市| 衡南县| 花垣县| 祁阳县| 弋阳县| 濉溪县| 辽宁省| 大名县| 天祝| 平乐县| 宁波市| 新民市| 马尔康县| 泉州市| 和硕县| 个旧市| 全州县| 富川| 仲巴县| 三门县| 偃师市| 南投市| 康平县| 丹东市| 丰县| 洪泽县|