大家都知道,毛主席对游击战有个十六字诀:"敌进我退,敌驻我扰,敌疲我打,敌退我追"。
我对此的理解就是当敌人的形势发生了变化,我们行动也要相应变动。其实在软件开发过程中也有类式情景。当A对象的状态变化的时候,B对象的状态也要相应变化。我们常用观察者模式解决此类问题。代码如下,可能和大家平常见的观察者模式的代码实现不太一样,其实原理都是一样的。
在下面的代码里,我方的情报人员显的很重要。即被观察者要有到观察者的引用。
public class 敌人 {
private 我 my;
public 敌人() {
my = new 我(); /* 哈哈,敌人内部的我方情报人员 */
}
public void 进() {
System.out.println("--敌进--");
my.退();
}
public void 驻() {
System.out.println("--敌驻--");
my.扰();
}
public void 疲() {
System.out.println("--敌疲--");
my.打();
}
public void 退() {
System.out.println("--敌退--");
my.追();
}
}
public class 我 {
public void 退() {
System.out.println("--我退--");
}
public void 扰() {
System.out.println("--我扰--");
}
public void 打() {
System.out.println("--我打--");
}
public void 追() {
System.out.println("--我追--");
}
}