大家都知道,毛主席對游擊戰有個十六字訣:"敵進我退,敵駐我擾,敵疲我打,敵退我追"。
我對此的理解就是當敵人的形勢發生了變化,我們行動也要相應變動。其實在軟件開發過程中也有類式情景。當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("--我追--");
}
}