大话之观察者模式

大家都知道,毛主席对游击战有个十六字诀:"敌进我退,敌驻我扰,敌疲我打,敌退我追"。
我对此的理解就是当敌人的形势发生了变化,我们行动也要相应变动。其实在软件开发过程中也有类式情景。当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("--我追--");
 }
}

为了便于大家理解,转个图,请大家指正!

参考:http://www.oodesign.com/observer-pattern.html

转载于:https://www.cnblogs.com/boiledwater4tom/archive/2009/07/08/1518985.html

猜你喜欢

转载自blog.csdn.net/weixin_33940102/article/details/93742924