`
lylegend13
  • 浏览: 82822 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

观察者模式学习

阅读更多

test1是被观察者,

 

test2是观察者,监听test1中的变化

 

package test;

import java.util.Date;
import java.util.Observable;

public class test1 extends Observable {

	int i = 0;

	public static void main(String[] args) {
		test1 t1=new test1();
		test2 t2=new test2();
		t1.addObserver(t2);
		t2.exec();
		t1.exec();
	}

	public void exec() {
		new Thread() {
			public void run() {
				try {
					while (true) {
						System.out.println("test1\t"+(++i));
						setChanged();
						notifyObservers(i);
						System.out.println("test1\t"+new Date());
						sleep(2000);
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}.start();
	}
}

 

package test;

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

public class test2 implements Observer {
	
	int oldi = 0,newi=0;
	
	public void exec(){
		new Thread() {
			public void run() {
				try {
					while (true) {
						if(newi!=oldi){
							System.out.println("test2\t"+newi);
							System.out.println("test2\t"+new Date());
							oldi=newi;
						}
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}.start();
	}

	@Override
	public void update(Observable arg0, Object arg1) {
		newi=Integer.valueOf(arg1.toString()).intValue();
	}
}

 

http://blog.csdn.net/goggler/archive/2009/12/20/5044983.aspx

分享到:
评论

相关推荐

    C++观察者模式学习代码

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

    观察者模式

    在Head First的观察者模式学习笔记中,我们可以深入理解这个模式的原理和应用。首先,观察者模式涉及到两个主要的角色:主题(Subject)和观察者(Observer)。主题是被观察的对象,它可以是任何具有可变状态的对象...

    观察者模式案例学习代码

    在这个“观察者模式案例学习代码”中,我们可能会看到以下的实现步骤: 1. 定义Subject接口或抽象类,包含addObserver、removeObserver和notifyObservers等方法。 2. 创建ConcreteSubject类,实现Subject接口,维护...

    观察者模式模版和例子

    观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象...为了深入学习,建议先了解观察者模式的基本概念,然后逐步分析代码,查看如何创建主题、注册观察者以及如何在主题状态变化时触发通知机制。

    iOS 设计模式 观察者模式

    通过分析和学习这个项目,你可以更深入地理解观察者模式的原理及其在实际开发中的应用。 总之,观察者模式是iOS开发中不可或缺的一部分,它帮助我们构建响应式和灵活的系统。无论是使用Apple提供的API还是自定义...

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

    在Java编程领域,设计模式是解决常见问题的模板或最佳实践。在这个名为“运用MVC模式及观察者模式的java小程序”的项目中,我们重点探讨了两种经典的...分析和学习这些代码将有助于深入理解MVC和观察者模式的实际应用。

    设计模式之观察者模式

    通过学习观察者模式,你不仅可以提高代码的可维护性和可扩展性,还能更好地理解和利用面向对象设计的原则,如开闭原则(对扩展开放,对修改关闭)。此外,了解并熟练运用观察者模式还有助于你理解和使用其他设计模式...

    HeadFirst 设计模式学习笔记2--观察者模式 demo

    总的来说,HeadFirst设计模式的学习笔记2关于观察者模式的演示,旨在帮助开发者理解如何使用观察者模式来构建可扩展的系统。通过实际的代码示例,我们可以更深入地掌握这一模式,并将其应用到日常开发中,提升代码的...

    观察者模式示例源代码

    观察者模式,也被称为发布-订阅(Publish-Subscribe)模式,是软件设计模式中的行为模式之一。它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式...

    观察者模式Demo

    观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的...通过阅读和理解“观察者模式Demo”的代码,你可以深入学习如何在实践中运用这个模式来解决实际问题。

    观察者模式最佳实践

    观察者模式,也被称为发布-订阅(Publish-Subscribe)模式,是软件设计模式中的行为模式之一,它在对象间定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。...

    Head First 之之观察者模式

    通过学习《Head First 之观察者模式》,读者不仅可以掌握观察者模式的基本概念和实现,还能了解到如何在实际项目中有效利用这一模式来提高代码的可维护性和灵活性。同时,书中活泼的教学方式也能让学习过程变得更为...

    java观察者模式Demo

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

    c++观察者模式实例

    观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在C++中,这种模式经常用于游戏开发,特别是在像cocos2d-x这样的2D游戏引擎...

    设计模式C++学习之观察者模式(Observer)

    观察者模式(Observer)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式在C++中广泛应用,特别是在需要...

    观察者模式MFC解释性源码

    通过学习和分析这样的源码,初学者可以深入理解观察者模式在实际项目中的应用,如何在MFC中实现事件通知机制,以及如何利用设计模式提高代码的可读性和可维护性。此外,还可以了解到MFC框架的消息处理机制和对象间的...

    (行为型模式) Observer 观察者模式

    这些资源可以帮助开发者更好地理解和运用.NET框架中的各种特性和API,特别是在学习如何在.NET中实现观察者模式时非常有用。 #### 总结 观察者模式是一种非常实用的设计模式,它通过减少对象间的耦合度来提高软件的...

    设计模式 中的 单例模式和观察者模式

    在给定的标题和描述中,我们关注的是两种重要的设计模式:单例模式和观察者模式。 首先,让我们深入了解单例模式。单例模式是一种确保一个类只有一个实例,并提供全局访问点的设计模式。这种模式在资源管理、缓存、...

    观察者模式(Observer)

    观察者模式(Observer)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。这个模式在软件工程中扮演着重要的角色,尤其是在事件驱动编程和实时系统中。在Java...

Global site tag (gtag.js) - Google Analytics