????==>

????????????????????????????????д????????????????????????????????????????????????????????????????????:

????1.???????????????????????????:

????public CarHandler(Handler handler) { this.handler = handler; }

????2.??????????????????????handleRequest()??.?????????????????????true??????????????????????false??????????????????????handleRequest()????.

????3.??????????У?????????handler???????????????.??????????????????car????????????house??????????????????ResponsibilityHandler?????.

????==>?????handler????????в?????????????????????????NULL???????

????------------------------------ ???????(Memento) -------------------------------

????(1)???????????????????????????????????????????£??????????????????????????????????????????????????????????????????????

????(2)???????:

?????????????Employee.?????????????????????棬??????????.

?????????????Memento?????????Employee????????????

????CareTaker?????????棬???Memento.?????????棬??????????.->????????????????.

package memento;
public class Memento{
String name;
int age;
public Memento(String name??int age){
this.name = name;
this.age = age;
}
}
Employee????
package memento;
public class Employee{
private String name;
private int age;
public Employee(String aName??int aAge){
name = aName;
age = aAge;
}
public void setName(String aName){
name = aName;
}
public void setAge(int aAge){
age = aAge;
}
public Memento  saveMemento(){
return new Memento(name??age);
}
public void restoreMemento(Memento memento){
age = memento.age;
name = memento.name;
}
public int getAge(){
return age;
}
public String getName(){
return name;
}
}
CareTaker????
package memento;
import java.util.Vector;
public class CareTaker{
private Vector v;
private int  current;
public CareTaker(){
current = -1;
v = new Vector();
}
public void setMemento(Memento mem){
current ++;
v.add(mem);
}
public Memento getMemento(){
if(current>0){
current --;
return(Memento) v.get(current);
}
return null;
}
}
Client????
package memento;
public class Client{
public static void show(Employee e){
System.out.println("-----------------------------------");
System.out.println("Name:"+e.getName());
System.out.println("Age:" + e.getAge());
System.out.println("-----------------------------------");
}
public static void main(String[] args){
Employee e = new Employee("lili"??25);
CareTaker ct = new CareTaker();
show(e);
ct.setMemento(e.saveMemento());
e.setName("litianli");
show(e);
ct.setMemento(e.saveMemento());
e.setAge(45);
show(e);
ct.setMemento(e.saveMemento());
//restore
e.restoreMemento(ct.getMemento());
show(e);
e.restoreMemento(ct.getMemento());
show(e);
}
}