刚才弄了一个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内置的Observable类和Observer接口提供了基本的观察者模式功能,你可以通过继承Observable类和实现Observer接口来使用
在Java中,我们可以利用Java提供的内置监听器机制来实现观察者模式,例如`ApplicationListener`和`ApplicationEvent`,这两个类主要用于Swing或JavaFX应用程序中的事件处理。 首先,我们来看`ApplicationListener`...
本文将深入探讨Java内置的观察者模式,包括其原理、实现方式以及实际应用。 ### 观察者模式的核心概念 1. **主题(Subject)**:被观察的对象,也就是发出通知的一方。在Java中,通常通过实现`java.util....
观察者模式都能帮助实现对象之间的松耦合、依赖关系的解耦,并提供一种动态的消息通知机制
在Java中,观察者模式的实现通常基于Java的内置接口`java.util.Observer`和`java.util.Observable`。下面将详细解释观察者模式的概念、结构以及如何在Java中应用这个模式。 **观察者模式的核心概念:** 1. **主题...
观察者模式是设计模式中的一种行为模式,它在Java编程中有着广泛的应用。该模式的主要目的是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被...
为了实现观察者模式,你需要创建一个实现了`Observer`接口的类,这个类代表具体的观察者。在这个类中,你需要实现`update()`方法,定义当接收到通知时应执行的操作。 接下来,我们可以创建一个具体的`Observable`...
观察者模式是软件设计模式中的一种行为...总的来说,"java观察者模式Demo"提供了一个使用Java标准库实现观察者模式的例子,这对于学习和理解设计模式是非常有帮助的,同时通过自定义实现还能进一步深入理解其工作原理。
在这个名为“运用MVC模式及观察者模式的java小程序”的项目中,我们重点探讨了两种经典的设计模式:Model-View-Controller(MVC)模式和Observer(观察者)模式。这两种模式在JavaWeb开发中扮演着至关重要的角色。 ...
在实际开发中,我们还可以利用Java的事件模型或者Spring框架中的`ApplicationEventPublisher`等高级机制来实现观察者模式,以获得更灵活和强大的功能。总的来说,观察者模式是软件设计中一种非常实用和常见的模式,...
为了在Java中实现观察者模式,首先需要创建一个继承自`Observable`的类,然后在状态改变时调用`setChanged()`和`notifyObservers()`方法来标记状态变更并通知所有观察者。观察者类需要实现`Observer`接口,重写`...
4. **Java实现**:在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了观察者模式的标准实现。`Observable`类代表主题,`Observer`接口代表观察者。通过`addObserver()`添加观察者,`...
Java标准库提供了`java.util.Observable`和`java.util.Observer`接口,用于实现观察者模式。 首先,我们需要创建一个`Observable`类的子类,代表我们的主题。这个类需要维护一个观察者列表,并提供添加、删除观察者...
### Java观察者模式详解 #### 一、观察者模式概述 观察者模式是一种常用的设计模式,主要用于处理对象间的一对多依赖...通过上述分析,我们可以看到Java中的观察者模式是如何实现的,以及它在实际开发中的应用价值。
在Java中,观察者模式的实现主要依赖于Java的`java.util.Observable`类和`java.util.Observer`接口。`Observable`类代表被观察的对象,它可以有多个观察者;`Observer`接口则代表观察者,它们需要实现`update`方法来...
在这个实例中,我们将深入理解如何在Java中实现观察者模式,以及它如何利用继承和多态性来增强概念理解。 首先,观察者模式的核心思想是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的...
在Java中,观察者模式通常通过`java.util.Observable`和`java.util.Observer`这两个接口来实现。`Observable`类代表被观察的对象,它可以添加多个观察者,并在状态变化时通知它们。而`Observer`接口则定义了观察者的...
观察者模式是软件设计模式中的一种行为模式,它在对象之间定义了一种...此外,Spring框架中的`ApplicationEventPublisher`和`ApplicationListener`接口也是实现观察者模式的一个常见选择,它们在企业级应用中广泛使用。