观察者模式简单demo

    1. Model.java ------------------------------------------被观察者
package com.lxh.observer;

import java.util.Observable;
/**
 * 被观察者
 */
public class Model extends Observable {
   
	// 被观察者改变
	public void change(){
		System.out.println("Model has been changed...");
		// 对象改变,不设置不会触发notifyObservers()方法
		setChanged();
		// 通知监控者
		notifyObservers();
	}
}
    2. Viewer.java -----------------------------------------观察者
package com.lxh.observer;

import java.util.Observable;
import java.util.Observer;
/**
 * 观察者
 */
public class Viewer implements Observer {
	
	// 
	@Override
	public void update(Observable o, Object arg) {
		System.out.println("copy that you had been changed ...");
	}

}
    3. Test.java   -----------------------------------------简单测试
package com.lxh.observer;

public class Test {

	public static void main(String[] args) {
		// 初始化对象
		Model m = new Model();
		Viewer v = new Viewer();
		// 被观察者绑定观察者
		m.addObserver(v);
		// 被观察者改变
		m.change();
	}

}
    4. 运行结果    

    5. 实际应用    
       配置文件的改变。

转载于:https://my.oschina.net/u/1989867/blog/536244

好的!下面是一个简单的 Spring Boot 观察者模式的示例代码: 首先,我们需要定义一个被观察的主题类(Subject),可以是一个普通的 Java 类: ```java import java.util.ArrayList; import java.util.List; public class Subject { private List<Observer> observers = new ArrayList<>(); public void attach(Observer observer) { observers.add(observer); } public void detach(Observer observer) { observers.remove(observer); } public void notifyObservers(String message) { for (Observer observer : observers) { observer.update(message); } } } ``` 然后,定义观察者接口(Observer): ```java public interface Observer { void update(String message); } ``` 接下来,我们可以创建一些具体的观察者类来实现 Observer 接口: ```java public class ConcreteObserver implements Observer { @Override public void update(String message) { System.out.println("Received message: " + message); // 实现具体的观察者逻辑 } } ``` 最后,在 Spring Boot 应用使用观察者模式: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ObserverPatternDemoApplication { public static void main(String[] args) { SpringApplication.run(ObserverPatternDemoApplication.class, args); // 创建被观察的主题对象 Subject subject = new Subject(); // 创建观察者对象 Observer observer1 = new ConcreteObserver(); Observer observer2 = new ConcreteObserver(); // 注册观察者 subject.attach(observer1); subject.attach(observer2); // 发送通知 subject.notifyObservers("Hello, observers!"); } } ``` 这个示例,我们创建了一个被观察的主题对象(Subject),并注册了两个观察者对象(ConcreteObserver)。当主题对象调用 `notifyObservers` 方法时,观察者对象会接收到通知,并执行相应的逻辑。 希望这个示例能帮助到你!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值