`
shiwuyisheng
  • 浏览: 66524 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

java实现观察者模式

阅读更多

刚才弄了一个javascript的观察者模式,现在把java版的也传上来,以后偶尔也可以了解哈,没有定义发布者接口,直接用一个具体类表示发布者

发布者

package sample.observer;

import java.util.ArrayList;
import java.util.List;

public class Subject {
	private List<IObserver> allObserver = new ArrayList<IObserver>();
	private int state = 0;

	public void attach(IObserver observer) {
		allObserver.add(observer);
	}

	public void detach(IObserver observer) {
		allObserver.remove(observer);
	}

	public void notifyObservers() {
		if (state != 0) {
			for (IObserver observer : allObserver) {
				observer.update();
			}
		}
	}

	public int getState() {
		return state;
	}

	public void setState(int state) {
		this.state = state;
	}
}

 

观察者接口

package sample.observer;

public interface IObserver {
	public void update();
}

 

观察者一

package sample.observer;

public class Observer1 implements IObserver {

	@Override
	public void update() {
		System.out.println("I AM OBSERVER1 ,I UPDATE");
	}

}

 

观察者二

package sample.observer;

public class Observer2 implements IObserver {

	@Override
	public void update() {
		System.out.println("I AM OBSERVER2 ,I UPDATE");
	}
}

 

主函数

package sample.observer;

public class Main {
	public static void main(String[] args) {
		Subject subject = new Subject();
		IObserver observer1 = new Observer1();
		IObserver observer2 = new Observer2();
		subject.attach(observer1);
		subject.attach(observer2);
		subject.notifyObservers();
		subject.setState(1);
		subject.notifyObservers();
		subject.detach(observer1);
		subject.notifyObservers();
	}
}

 附件是项目代码

分享到:
评论

相关推荐

    java实现观察者模式-Java内置的观察者模式(基于Observable和Observer)

    Java内置的Observable类和Observer接口提供了基本的观察者模式功能,你可以通过继承Observable类和实现Observer接口来使用

    观察者模式java实现观察者设计模式

    在Java中,我们可以利用Java提供的内置监听器机制来实现观察者模式,例如`ApplicationListener`和`ApplicationEvent`,这两个类主要用于Swing或JavaFX应用程序中的事件处理。 首先,我们来看`ApplicationListener`...

    Java内置观察者模式

    本文将深入探讨Java内置的观察者模式,包括其原理、实现方式以及实际应用。 ### 观察者模式的核心概念 1. **主题(Subject)**:被观察的对象,也就是发出通知的一方。在Java中,通常通过实现`java.util....

    java实现观察者模式-自定义的观察者接口和主题类

    观察者模式都能帮助实现对象之间的松耦合、依赖关系的解耦,并提供一种动态的消息通知机制

    java 设计模式 观察者模式 简单实例 包括测试test类

    在Java中,观察者模式的实现通常基于Java的内置接口`java.util.Observer`和`java.util.Observable`。下面将详细解释观察者模式的概念、结构以及如何在Java中应用这个模式。 **观察者模式的核心概念:** 1. **主题...

    java观察者模式观察者模式

    观察者模式是设计模式中的一种行为模式,它在Java编程中有着广泛的应用。该模式的主要目的是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被...

    设计模式之观察者模式Java实现

    为了实现观察者模式,你需要创建一个实现了`Observer`接口的类,这个类代表具体的观察者。在这个类中,你需要实现`update()`方法,定义当接收到通知时应执行的操作。 接下来,我们可以创建一个具体的`Observable`...

    java观察者模式Demo

    观察者模式是软件设计模式中的一种行为...总的来说,"java观察者模式Demo"提供了一个使用Java标准库实现观察者模式的例子,这对于学习和理解设计模式是非常有帮助的,同时通过自定义实现还能进一步深入理解其工作原理。

    运用MVC模式及观察者模式的java小程序

    在这个名为“运用MVC模式及观察者模式的java小程序”的项目中,我们重点探讨了两种经典的设计模式:Model-View-Controller(MVC)模式和Observer(观察者)模式。这两种模式在JavaWeb开发中扮演着至关重要的角色。 ...

    设计模式--观察者模式java例子

    在实际开发中,我们还可以利用Java的事件模型或者Spring框架中的`ApplicationEventPublisher`等高级机制来实现观察者模式,以获得更灵活和强大的功能。总的来说,观察者模式是软件设计中一种非常实用和常见的模式,...

    java 了解观察者模式

    为了在Java中实现观察者模式,首先需要创建一个继承自`Observable`的类,然后在状态改变时调用`setChanged()`和`notifyObservers()`方法来标记状态变更并通知所有观察者。观察者类需要实现`Observer`接口,重写`...

    设计模式实现——观察者模式

    4. **Java实现**:在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的标准实现。`Observable`类代表主题,`Observer`接口代表观察者。通过`addObserver()`添加观察者,`...

    Java观察者模式代码全解析

    Java标准库提供了`java.util.Observable`和`java.util.Observer`接口,用于实现观察者模式。 首先,我们需要创建一个`Observable`类的子类,代表我们的主题。这个类需要维护一个观察者列表,并提供添加、删除观察者...

    Java 观察者模式的浅析

    ### Java观察者模式详解 #### 一、观察者模式概述 观察者模式是一种常用的设计模式,主要用于处理对象间的一对多依赖...通过上述分析,我们可以看到Java中的观察者模式是如何实现的,以及它在实际开发中的应用价值。

    java 观察者模式 demo

    在Java中,观察者模式的实现主要依赖于Java的`java.util.Observable`类和`java.util.Observer`接口。`Observable`类代表被观察的对象,它可以有多个观察者;`Observer`接口则代表观察者,它们需要实现`update`方法来...

    java观察者模式实例

    在这个实例中,我们将深入理解如何在Java中实现观察者模式,以及它如何利用继承和多态性来增强概念理解。 首先,观察者模式的核心思想是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的...

    java设计模式之观察者模式

    在Java中,观察者模式通常通过`java.util.Observable`和`java.util.Observer`这两个接口来实现。`Observable`类代表被观察的对象,它可以添加多个观察者,并在状态变化时通知它们。而`Observer`接口则定义了观察者的...

    Java观察者模式案例

    观察者模式是软件设计模式中的一种行为模式,它在对象之间定义了一种...此外,Spring框架中的`ApplicationEventPublisher`和`ApplicationListener`接口也是实现观察者模式的一个常见选择,它们在企业级应用中广泛使用。

Global site tag (gtag.js) - Google Analytics