Observer设计模式

package com.observer;

import java.util.ArrayList;
import java.util.List;
import java.util.Observable;

public class TestObservable extends Observable {

 private List<String> list = new ArrayList<String>();
 
 public void invoke(String s) {
  list.add(s);
  if(list.size() > 5) {
   this.setChanged(); //修改标识
   this.notifyObservers(list); //触发Observer监听函数
   list.clear();
  }
 }
}

package com.observer;

import java.util.List;
import java.util.Observable;
import java.util.Observer;

public class TestObserver implements Observer {

 public void update(Observable o, Object arg) {

  if(arg instanceof List) {
   List<String> list = (List<String>)arg;
   for(String s : list) {
    System.out.println(s);
   }
  }
 }
 
 public static void main(String[] args) {
  
  TestObservable test = new TestObservable();
  test.addObserver(new TestObserver()); //加入监听
  
  for(int i = 0; i < 15; i ++) {
   test.invoke("第" + i + "名");
  }
 }

}

你可能感兴趣的:(java,设计模式)