关于Java 设计模式 观察者模式 Observer

关于Java 设计模式 观察者模式 Observer

1、Subject.java

package com.ssm.cts.pattern.observer;

import java.util.Vector;

public abstract class Subject {
  // 定义一个观察者数组
  private Vector<Observer> obsVector = new Vector<Observer>();

  // 增加一个观察者
  public void addObserver(Observer o) {
    this.obsVector.add(o);
  }

  // 删除一个观察者
  public void delObserver(Observer o) {
    this.obsVector.remove(o);
  }

  // 通知所有观察者
  public void notifyObserver() {
    for (Observer o : this.obsVector) {
      o.update();
    }
  }
}

2、ConcreteSubject.java

package com.ssm.cts.pattern.observer;

public class ConcreteSubject extends Subject {
  
  public void doAction() {
    System.out.println("被观察者开始行动");
    
    super.notifyObserver();
  }
}

3、Observer.java

package com.ssm.cts.pattern.observer;

public interface Observer {
  // 更新方法
  public void update();
}

4、ConcreteObserver.java

package com.ssm.cts.pattern.observer;

public class ConcreteObserver implements Observer {

  @Override
  public void update() {
    System.out.println("观察者接收到信息,并进行处理!");
  }

}

5、Demo.java

package com.ssm.cts.pattern.observer;

public class Demo {

  public static void main(String[] args) {
    // 创建一个被观察者
    ConcreteSubject subject = new ConcreteSubject();
    // 定义一个观察者
    Observer obs = new ConcreteObserver();
    // 观察者 观察 被观察者
    subject.addObserver(obs);
    // 被观察者开始行动
    subject.doAction();
  }

}

 

发表回复

您的电子邮箱地址不会被公开。