java ???????????2??
???????????? ???????[ 2013/8/6 10:02:38 ] ????????
????==>
????????????????????????????????д????????????????????????????????????????????????????????????????????:
????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);
}
}
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11