`
forever8tf
  • 浏览: 99299 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java中自带Observer模式运用

阅读更多

使用Java中自带的Observer模式时,需要用到一下两个类:

Observer

Observable

 

 

 

 

需要注意到是,当需要使用Observable中的notifyObservers()方法时,必须在之前调用setChanged()方法才会生效,否则notifyObservers()方法什么都不会发生。

代码如下:

TfObserver.java

import java.util.Observable;
import java.util.Observer;

public class TfObserver implements Observer
{

	@Override
	public void update(Observable arg0, Object arg1)
	{
		System.out.println("Tf's Observer has saved " + arg1);		
	}

}

 

MhObserver.java

import java.util.Observable;
import java.util.Observer;

public class MhObserver implements Observer
{

	@Override
	public void update(Observable o, Object arg)
	{
		System.out.println("Mh's Observer has saved " + arg);		
	}

}

 以上为两个观察者。

 

Client.java

import java.util.Observable;

public class Client extends Observable
{
	public void notifyAll(String s)
	{
		super.setChanged();
		super.notifyObservers(s);
	}
}

 需注册观察者的Client。

 MainClass.java

import java.util.Observer;


public class MainClass
{
	public static void main(String[] args)
	{
		Client o = new Client();
		Observer tf = new TfObserver();
		Observer mh = new MhObserver();
		o.addObserver(tf);
		o.addObserver(mh);
//		System.out.println(o.countObservers());
//		只有在setChange()被调用后,notifyObservers()才会去调用update(),否则什么都不干。
//		System.out.println(o.hasChanged());
		o.notifyAll("Lol~");

	}

}
 

 

分享到:
评论

相关推荐

    Observer模式

    在Java中,Observer模式主要通过java.util.Observable和java.util.Observer接口来实现。Observable类代表被观察的对象,Observer接口定义了观察者的基本行为。当Observable对象的状态发生变化时,会调用Observer接口...

    Observer设计模式实例

    Observer设计模式,也被称为“发布-订阅”(Publish-Subscribe)模式或“依赖倒置”模式,是软件设计中的一种行为模式。...在Java、C#、Python等面向对象语言中,都有内置的Observer支持,使得实现这一模式更加便捷。

    详解Observer Pattern(观察者模式)在Java中的使用原理

    该示例是翻写一老外Observer Pattern的例子,本人觉得该示例是对该模式的非常精典的说明,于是花点功夫来翻写它,因为他的代码没有注释说明该模式的设计思想怎样体现在代码中去,所以,本人结合代码注释了关键代码的...

    OBserver模式设计实现

    在Java中,`java.util.Observable`和`java.util.Observer`是内置的支持观察者模式的类。你可以创建一个类继承`Observable`,并在需要时调用`setChanged()`和`notifyObservers()`方法来通知观察者。同时,观察者实现`...

    设计模式在java语言中的运用 书籍

    Java中的`java.util.Observable`和`java.util.Observer`接口就是对这种模式的内置支持。 此外,创建型设计模式主要处理对象的创建。"工厂模式"提供了一种创建对象的最佳方式,避免直接new操作,提高了代码的可扩展...

    java设计模式之Observer参考.pdf

    在Java中,Observer模式通过`java.util.Observable`和`java.util.Observer`接口实现。 在给定的文件中,我们看到一个具体的Observer模式应用例子,涉及到`Product`类和两个观察者`NameObserver`和`PriceObserver`。...

    Java内置观察者模式

    在Java中,这种模式已经被内置到语言核心,使得开发者可以轻松地实现事件驱动的编程。本文将深入探讨Java内置的观察者模式,包括其原理、实现方式以及实际应用。 ### 观察者模式的核心概念 1. **主题(Subject)**...

    java设计模式之Observer[整理].pdf

    在这个场景中,我们将讨论如何在Java中应用Observer模式,特别是在电子商务系统中的应用。 Observer模式的核心思想是定义一个一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象的状态发生变化...

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

    在Java中,`java.util.Observable`和`java.util.Observer`接口提供了一种内置的实现。 1. **Observable对象**:这是被观察的对象,它可以注册观察者并通知他们状态的改变。在选民投票的例子中,可能是一个存储投票...

    Observer模式代码实现

    本例中的观察者模式由四个主要类构成:`Client`、`Subject`、`Observer` 和 `SubstanceObserver`。下面对每个类进行详细介绍。 ##### Client 类 `Client` 类是程序的入口,通过创建具体的被观察者和观察者对象,...

    observer模式实现示例

    在C++编程中,Observer模式通常通过函数指针或者接口来实现,这两种方法在VC6.0环境下同样适用。 首先,我们来探讨使用函数指针实现Observer模式。函数指针是C++中的一个重要特性,它允许我们将函数作为其他函数的...

    JAVA21种设计模式

    - **观察者模式(Observer)**:定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 - **状态模式(State)**:允许对象在其内部状态改变时改变它的行为,...

    Observer 模式

    在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了实现Observer模式的基础框架。主体类通常扩展`Observable`,并调用其`addObserver()`方法来注册新的观察者,`deleteObserver()`用于移除,而`...

    Observer与Command模式在VTK类库设计中的应用研究

    ### Observer与Command模式在VTK类库设计中的应用研究 #### 一、引言 VTK(Visualization Toolkit)是一套开源的三维可视化开发库,在国外得到了广泛应用,而在国内的研究相对较少,导致其应用受到一定限制。为了...

    java中常用设计模式总结心得

    在Java中,`java.util.Observable`和`java.util.Observer`接口就是对观察者模式的实现。 8. **策略模式**:策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用...

    重温Observer模式--热水器·改

    在这个“重温Observer模式--热水器·改”的讨论中,作者将再次阐述如何不依赖C#的委托和事件来实现Observer模式,而是采用GOF(GoF,Gang of Four)的经典方式。 在Observer模式中,有两个核心角色:Subject(主题...

    从Java类库看设计模式

    在Java中,标准库提供了对Observer模式的支持,主要包括`java.util.Observable`类和`java.util.Observer`接口。 ##### 3.1 `java.util.Observer`接口 ```java public interface Observer { void update(Observable...

    java 的研磨设计模式(模式)

    Java中String对象池就是享元模式的应用。 9. 组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。Java集合框架中的Composite接口就是组合模式的体现。 ...

    Observer模式的应用

    请选用适当的设计模式,编写一个股票行情分析软件,随着时间的推移和股票价格的变动,实现各种指标的动态更新(要求至少实现一个股票的分时图和K线图:为降低编程工作量,K线图可以用开盘价、收盘价、最高价、最低价...

    Observer设计模式

    具体实现上,Java中的Observer模式主要依赖于java.util.Observable和java.util.Observer这两个类。Observable类代表了被观察的对象,它可以存储多个Observer,并提供方法来添加、删除Observer,以及通知它们状态的...

Global site tag (gtag.js) - Google Analytics