访问者模式:
表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
// 人的抽象类
public abstract class Person {
// 接受一个'访问者'为参数
public abstract void accept(Action visitor);
}
// 男人
public class Man extends Person {
@Override
public void accept(Action visitor) {
visitor.getManReflection(this);
}
}
// 女人
public class Woman extends Person {
@Override
public void accept(Action visitor) {
visitor.getWomanReaction(this);
}
}
// 状态的抽象类
public abstract class Action {
// 获取男人的反应
public abstract void getManReflection(Man m);
// 获取女人的反应
public abstract void getWomanReaction(Woman w);
}
// 成功
public class Success extends Action {
@Override
public void getManReflection(Man m) {
System.out.println("When a man successed , there will be a great women behind him! ");
}
@Override
public void getWomanReaction(Woman w) {
System.out.println("Whe