本站不再更新,欢迎光临 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 有猫相伴的日子 阅读(268) 评论(0)  编辑  收藏 所属分类: Patterns

只有注册用户登录后才能发表评论。


网站导航:
 
本站不再更新,欢迎光临 java开发技术网