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

观察者模式例子

阅读更多
看完观察者模式自己实现了一下.
我用的是推模式.
数据传入模型
package study;

public class WeatherDataModel {
	
	private String day ="";
	public WeatherDataModel(String day){
		this.setDay(day);
	}
	public String getDay() {
		return day;
	}

	public void setDay(String day) {
		this.day = day;
	}

}

主题,信息源,发布者
package study;

import java.util.Observable;

public class WeathereData extends Observable{
	public  void findData(WeatherDataModel dataModel){
		this.setChanged();
		this.notifyObservers(dataModel);
	}
	

}

观察者,订阅用户
package study;

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

public class CatObserver implements Observer{

	public void update(Observable o, Object arg) {
	
		if(arg instanceof WeatherDataModel){
			System.out.println(((WeatherDataModel)arg).getDay());
		}
		
	}

}

测试
package study;

import junit.framework.TestCase;

public class TestObserverPattern extends TestCase{
	public void testObserver() {
		WeatherDataModel newWeather = new WeatherDataModel(
				"Today is a good day");
		WeathereData weathereData = new WeathereData();
		CatObserver catObserver = new CatObserver();
		weathereData.addObserver(catObserver);
		//weathereData.
		weathereData.findData(newWeather);
		newWeather.setDay("It's a fine day");
		weathereData.findData(newWeather);
		weathereData.findData(newWeather);

	}

}

欢迎大家交流.
分享到:
评论

相关推荐

    php SPL观察者模式例子

    标题"php SPL观察者模式例子"暗示我们将探讨如何在PHP中使用SPL库实现观察者模式。SPL库中的`SplObserver`和`SplSubject`接口是实现观察者模式的关键组件。 **观察者模式的核心概念** - **主题(Subject)**:主题...

    C++观察者模式例子

    C++ 观察者模式的详细例子。2010-06-07编写。

    Qt设计模式之观察者模式

    本篇文章将深入探讨Qt中的观察者模式(Observer Pattern),这是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式的核心...

    C++ 实现观察者模式小例子

    在这个"C++ 实现观察者模式小例子"中,我们看到它被应用到了显示器和报警器这两个组件上,它们根据泵的温度和压力来展示信息或触发警报。 首先,我们需要理解观察者模式的基本结构。在这个模式中,有三个主要角色:...

    观察者模式简单例子

    在这个"观察者模式简单例子"中,我们将通过一个天气预报版的例子来深入理解这一模式。 在《Head First设计模式》第2章的天气预告版示例中,有三个主要角色:Subject(主题)、Observer(观察者)和ConcreteSubject...

    观察者模式模版和例子

    在提供的压缩包文件中,`观察者模式模版和例子`可能包含了实现这些概念的代码示例,通过阅读和理解这些代码,你可以更好地掌握观察者模式的实现细节和应用方式。为了深入学习,建议先了解观察者模式的基本概念,然后...

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

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...

    设计模式例子,观察者模式,建造者模式

    在给定的压缩包文件中,"设计模式例子,观察者模式,建造者模式" 提到了两种重要的设计模式:观察者模式(Observer Pattern)和建造者模式(Builder Pattern)。下面我们将深入探讨这两种设计模式的概念、应用场景、...

    接口实现C#观察者模式简单例子

    在C#编程中,观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。这个模式广泛应用于事件驱动编程,例如GUI系统、多线程通信等...

    委托实现C#观察者模式简单例子

    在C#编程中,观察者模式...通过这个简单的例子,我们展示了如何使用C#的委托来实现观察者模式。这个模式在多处有应用,如UI控件的事件处理、数据绑定等。理解并熟练运用观察者模式有助于构建可扩展、解耦的系统。

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

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...

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

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或者发布...

    观察者模式的例子(java)

    接下来,我们将深入探讨如何使用这两个核心组件来构建观察者模式的例子。 首先,我们创建一个`Observable`的子类,这个类通常包含被观察的状态变量。例如,我们可以创建一个`Temperature`类,模拟一个温度计,其...

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

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

    Java观察者模式例子

    观察者模式是软件设计模式中的一种行为模式,它在对象之间建立了一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式常用于事件驱动的系统或者需要实时...

    用C++ 实现设计模式之观察者模式

    在这个例子中,虽然没有直接给出UML图,但根据描述,我们可以理解`BlogCSDN`与`ObserverBlog`之间的关系是观察者模式的经典体现,即`BlogCSDN`作为被观察者,`ObserverBlog`作为观察者。 通过这样的设计,博客的...

    java 了解观察者模式

    观察者模式,也被称为发布-订阅(Publish-Subscribe)模式,是软件设计模式中的行为模式之一,主要用于对象间的一对多依赖关系管理。在Java中,观察者模式的实现主要依赖于`java.util.Observable`和`java.util....

    观察者模式 c++ 实现

    观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在C++中实现观察者模式,通常涉及以下几个关键概念: 1. **主题(Subject...

Global site tag (gtag.js) - Google Analytics