Java观察者模式是一种重要的设计模式,它在许多Java应用程序中发挥着关键作用,本文将深入剖析其原理、应用场景并给出实例。
一、Java观察者模式原理
1. 基本概念
2. 代码实现原理
java
import java.util.ArrayList;
import java.util.List;
class Subject {
private List
private int state;
public int getState {
return state;
public void setState(int state) {
this.state = state;
notifyObservers;
public void addObserver(Observer observer) {
observers.add(observer);
public void removeObserver(Observer observer) {
observers.remove(observer);
public void notifyObservers {
for (Observer observer : observers) {
observer.update(this);
java
interface Observer {
void update(Subject subject);
二、Java观察者模式的应用
1. 图形用户界面(GUI)开发
2. 事件处理系统
3. 股票市场监测系统
三、Java观察者模式的实例
1. 简单的温度监测系统
java
class TemperatureSensor extends Subject {
private double temperature;
public double getTemperature {
return temperature;
public void setTemperature(double temperature) {
this.temperature = temperature;
setState((int) temperature);
java
class TemperatureDisplay implements Observer {
@Override
public void update(Subject subject) {
if (subject instanceof TemperatureSensor) {
TemperatureSensor sensor = (TemperatureSensor) subject;
System.out.println("当前温度为: " + sensor.getTemperature + "℃");
class TemperatureAlarm implements Observer {
@Override
public void update(Subject subject) {
if (subject instanceof TemperatureSensor) {
TemperatureSensor sensor = (TemperatureSensor) subject;
if (sensor.getTemperature > 30) {
System.out.println("温度过高,报警!");
java
public class Main {
public static void main(String[] args) {
TemperatureSensor sensor = new TemperatureSensor;
TemperatureDisplay display = new TemperatureDisplay;
TemperatureAlarm alarm = new TemperatureAlarm;
sensor.addObserver(display);
sensor.addObserver(alarm);
sensor.setTemperature(25);
sensor.setTemperature(35);
Java观察者模式是一种非常有用的设计模式,它在不同的领域有着广泛的应用。通过理解其原理,我们可以更好地在Java编程中运用它来实现对象之间的松耦合通信,提高代码的可维护性和扩展性。