java备忘观察者模式

java 备忘 观察者 模式
   设计、算法、实现 2010-07-20 23:19:26 阅读0 评论0 字号:大中小
  public class originator
  {
   private String state;
   private CareTaker ct;

   public originator(CareTaker ct)
   {
   this.ct = ct;
   }

   public String getState()
   {
   return state;
   }

   public void setState(String state)
   {
   this.state = state;
   ct.setMemento(state);
   }

   public void restroeState(int key)
   {
   this.state = this.ct.getMemento(key).getState();
   }

  }

  
  package memento;

  import java.util.HashMap;
  import java.util.Map;

  public class CareTaker
  {
   private Map<Integer, Memento> mementos = new HashMap<Integer, Memento>();
   private int key = 1;

   public void setMemento(String ste)
   {
   mementos.put(key++, new Memento(ste));
   }

   public Memento getMemento(int key)
   {
   return mementos.get(key);
   }

  }

  
  package memento;

  public class Memento
  {
   private String state;

   public Memento(String state)
   {
   this.state = state;
   }

   public String getState()
   {
   return state;
   }

   public void setState(String state)
   {
   this.state = state;
   }

  }

  
  public static void main(String[] args)
   {
   CareTaker c=new CareTaker();
   originator o=new originator(c);

   o.setState("one");

   o.setState("two");

   o.setState("three");

   o.restroeState(2);

   System.out.println(o.getState());

   }


  根据情况拓展一下


评论: 0 | 引用: 0 | 查看次数: 30
发表评论
你没有权限发表留言!