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

observer demo

阅读更多

scene:michael and cavin in char room,they can got common messages from manager.

code:
first we need a manager,

 

package observer;

import java.util.Observable;
/**
 * char room manager.
 * @author michael
 */
public class CharRoomManage extends Observable {
	private String gonggao;
	
	public String getGonggao() {
		return gonggao;
	}
	
	public void setGonggao(String gonggao) {
		this.gonggao = gonggao;
		setChanged();
		notifyObservers(gonggao);
	}
}

 this manager class can create a manager to send common messages.

 

second we need the observe persons,

package observer;

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

/**
 * CharPerson,to create chat Person.
 * @author michael
 */
public class ChatPerson implements Observer {
	private String gonggao;
	private String chatPersonName;
	
	public ChatPerson(String chatPersonName) {
		this.chatPersonName=chatPersonName;
	}
	
	public void update(Observable o, Object arg) {
		if(arg instanceof String){
			gonggao=(String)arg;
			System.out.println(chatPersonName+"收到站内消息: "+gonggao);
		}
	}
}

 this class can create as many chat room users as we want.

 

finally we use a main method for test,

package observer;

public class TestMain {
	public static void main(String[] args) {
		//craete a chat room manage
		CharRoomManage manager = new CharRoomManage();
		
		//create two person,those will be observe
		ChatPerson mihcael=new ChatPerson("michael");
		ChatPerson cavin=new ChatPerson("cavin");
		
		//create relation
		manager.addObserver(mihcael);
		manager.addObserver(cavin);
		
		//send commons messages
		manager.setGonggao("请不要乱发消息");
	}
}

 run this the result is:

cavin收到站内消息: 请不要乱发消息
michael收到站内消息: 请不要乱发消息

 

分享到:
评论

相关推荐

    Content Observer Demo 源代码

    "Content Observer Demo 源代码" 是一个关于Android开发的示例项目,它演示了如何使用ContentObserver类来监听系统中的数据变化,特别是与短信(SMS)相关的数据变化。在这个项目中,开发者可以学习到如何实时监控...

    Android observer 使用demo

    在Android开发中,Observer模式是一种常见的设计模式,用于实现对象之间的通信和状态更新。Observer模式的核心思想是"一对多"的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。...

    Observerdemo

    在Android中,观察者模式的主要实现方式是通过`java.util.Observable`和`java.util.Observer`接口,以及Android框架提供的`BroadcastReceiver`、`LiveData`、`ViewModel`等类。下面我们将详细探讨这些内容。 1. `...

    observer-pattern-demo 观察者模式示例

    在这个"observer-pattern-demo"的示例中,我们将深入探讨观察者模式的原理、结构和应用场景。 **1. 模式定义** 观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会...

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

    在`Demo16_Observer`这个示例中,我们可能会看到如下实现: 1. `Subject`类:定义了添加、删除观察者的方法,以及一个通知所有观察者的方法,例如`notify()`。 2. `ConcreteSubject`类:继承自`Subject`,实现具体...

    android Observer(观察者模式)_案例祥解.pdf

    观察者模式详解 观察者模式是23种设计模式中的一种,尤其是在软件设计过程中体现的更是立足无穷。本文将详细讲解观察者模式的概念和实现,通过代码注释来解释各个组件的作用。 一、观察者模式的定义 ...

    RxJava2使用简介Demo

    通过这个简单的Demo,你可以了解如何在Android项目中使用RxJava2创建Observable、创建Observer以及进行订阅操作。这只是RxJava2庞大功能的冰山一角,深入学习和实践,你将能够更高效地处理异步任务和事件,构建出更...

    观察者模式Demo

    在这个“观察者模式Demo”中,我们将深入探讨观察者模式的概念、结构、实现方式以及其在实际应用中的价值。 观察者模式的核心思想是发布-订阅模型,分为两个主要角色:主题(Subject)和观察者(Observer)。主题是...

    23种设计模式Demo

    5. **观察者模式(Observer)**:定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。在Demo中,可能包含事件监听和发布事件的实现。 6. **装饰器模式...

    观察者模式demo

    在这个"观察者模式demo"中,可能有一个具体的主题类,比如`WeatherStation`,它记录天气数据并通知所有注册的观察者(比如`TemperatureDisplay`, `HumidityDisplay`等)更新显示。观察者则根据接收到的天气数据更新...

    Rxjava demo 手写源码demo示例

    **RxJava 源码分析及手写 Demo 示例** RxJava 是一个用于处理异步数据流的库,它引入了反应式编程的概念,使得在 Android 和 Java 开发中管理事件和数据流变得更加容易。这个“RxJava Demo 手写源码 demo 示例”...

    php设计模式demo

    public function attach(Observer $observer) { $this->observers[] = $observer; } public function detach(Observer $observer) { foreach ($this->observers as $key => $o) { if ($o === $observer) { ...

    java观察者模式Demo

    通常,这个Demo会包含一个可观察的对象(Observable)和多个观察者(Observer),当可观察对象的状态发生变化时,会触发通知机制,使得观察者接收到这一变化并作出相应的响应。 描述中提到,这个Demo将使用Java自带...

    RxJava+Retrofit简单Demo

    其核心概念包括`Observable`(可观察者)、`Observer`(观察者)、各种操作符(如map、filter、concatMap等)以及线程控制策略。 **Retrofit** Retrofit是Square公司开发的一个针对网络请求的Java库,它允许开发者通过...

    观察者模式for android demo

    观察者模式(Observer Pattern)是设计模式中的一种行为模式,它在Android开发中扮演着重要的角色,主要用于实现对象之间的解耦。在这个“观察者模式for android demo”中,我们将深入探讨如何在Android环境中应用该...

    android Rxjava简单使用Demo

    3. **Subscribe(订阅)**:连接Observable和Observer,当Observable有新数据时,就会通知Observer。 4. **Operators(操作符)**:RxJava提供了丰富的操作符,用于对数据流进行转换、过滤、合并等操作。 **RxJava...

    notification Demo

    6. **代码实现**:在实际的代码中,"notification Demo"可能会使用某种编程语言的内置通知库(如Objective-C的NSNotification,Java的Observer/Observable,或者自定义的事件总线系统)。代码示例通常会展示如何创建...

    观察者模式的一个demo

    在“观察者模式的一个demo”中,我们可以期待看到以下几个关键组成部分: 1. **主题(Subject)**:主题是被观察的对象,它可以是任何类型的数据或状态。在Java中,通常是一个实现了`java.util.Observable`接口的类...

    DesignDemo

    行为型设计模式主要处理对象之间的责任分配,如观察者模式(Observer)让多个对象可以订阅并响应某个主题的状态变化,策略模式(Strategy)允许在运行时选择不同的算法或策略,还有职责链模式(Chain of ...

    设计模式学习使用的简单Demo

    本资源“设计模式学习使用的简单Demo”提供了一系列的示例代码,旨在帮助开发者更好地理解和应用这些模式。以下是对其中包含的设计模式及其Java反射机制的详细说明: 1. **适配器模式**(Adapter Pattern):适配器...

Global site tag (gtag.js) - Google Analytics