`
forever8tf
  • 浏览: 98045 次
  • 性别: 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的例子,本人觉得该示例是对该模式的非常精典的说明,于是花点功夫来翻写它,因为他的代码没有注释说明该模式的设计思想怎样体现在代码中去,所以,本人结合代码注释了关键代码的...

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

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

    OBserver模式设计实现

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

    java设计模式之Observer参考.pdf

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

    Java内置观察者模式

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

    JAVA23中设计模式

    ### JAVA23中设计模式详解 #### 一、概述 设计模式是在软件设计过程中解决常见问题的一套可复用的解决方案。《JAVA23中设计模式》是一份针对Java程序员的指南,旨在通过一系列示例和理论讲解,帮助读者理解和掌握...

    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线图可以用开盘价、收盘价、最高价、最低价...

Global site tag (gtag.js) - Google Analytics