赞
踩
观察者模式用于定义对象间的一种一对多的依赖关系,使得当一个对象状态变化时,其所有依赖对象都会收到通知并自动更新
- /**
- * 行为型模式--观察者模式
- * 观察者模式用于定义对象间的一种一对多的依赖关系,使得当一个对象状态变化时,其所有依赖对象都会收到通知并自动更新
- */
- public class ObserverMode {
-
- // 观察者接口
- interface Observer {
- void update();
- }
-
- // 主题接口
- interface Subject {
- void registerObserver(Observer observer);
- void removeObserver(Observer observer);
- void notifyObservers();
- }
-
- // 具体主题类
- static class ConcreteSubject implements Subject {
- private final java.util.List<Observer> observers = new java.util.ArrayList<>();
-
- public void registerObserver(Observer observer) {
- observers.add(observer);
- }
-
- public void removeObserver(Observer observer) {
- observers.remove(observer);
- }
-
- public void notifyObservers() {
- for (Observer observer : observers) {
- observer.update();
- }
- }
- }
-
- // 具体观察者类
- static class ConcreteObserver implements Observer {
- public void update() {
- System.out.println("Received message: Observer is notifyObservers");
- }
- }
-
- // ConcreteSubject是一个具体的主题类,它实现了Subject接口,并包含了一组观察者。
- // ConcreteObserver是一个具体的观察者类,它实现了Observer接口。
- // 通过观察者模式,我们可以实现对象间的解耦,当主题状态发生变化时,观察者会收到通知并进行相应的更新
- // 使用观察者模式
- public static void main(String[] args) {
- ConcreteSubject subject = new ConcreteSubject();
- Observer observer = new ConcreteObserver();
-
- subject.registerObserver(observer);
- subject.notifyObservers();
- subject.removeObserver(observer);
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。