`
darezhong
  • 浏览: 9369 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式学习之观察者模式

阅读更多

1.名词解释

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有观察者对象,使它们能够自动更新自己。

 

2.代码示例

通知者接口
package DesignPattern.ObserverPattern;

public interface IObserver {

	public void updateState();
}

 

观察者接口
package DesignPattern.ObserverPattern;

public interface IObserver {

	public void updateState();
}

 

实际通知者类
package DesignPattern.ObserverPattern;

import java.util.ArrayList;
import java.util.List;

public class Secretary implements ISubject {

	private List<IObserver> obsList = new ArrayList();
	
	@Override
	public void addObserver(IObserver o) {
		obsList.add(o);
	}

	@Override
	public void delObserver(IObserver o) {
		obsList.remove(o);
	}

	@Override
	public void notifyObserver() {
		if(obsList != null && obsList.size() > 0) {
			int size = obsList.size();
			for(int i = 0; i < size; i++) {
				IObserver observer = obsList.get(i);
				observer.updateState();
			}
		}
	}

}

 

股票观察者
package DesignPattern.ObserverPattern;

public class StockObserver implements IObserver {

	@Override
	public void updateState() {
        System.out.println("Boss is coming back, go to work now.");		
	}
}

 

玩游戏观察者
package DesignPattern.ObserverPattern;

public class PlayGameObserver implements IObserver {

	@Override
	public void updateState() {
        System.out.println("It's time to work now.");		
	}

}

 

 

主控程序

package DesignPattern.ObserverPattern;

public class Client {

	public static void main(String[] args) {
		Secretary secretary = new Secretary();
		StockObserver stockObserver = new StockObserver();
		PlayGameObserver playGameObserver = new PlayGameObserver();
		secretary.addObserver(stockObserver);
		secretary.addObserver(playGameObserver);
		secretary.notifyObserver();
	}
}

 

分享到:
评论

相关推荐

    Android 设计模式学习之观察者模式应用实例

    本文将深入探讨一种常用的设计模式——观察者模式(Observer Pattern),并结合Android实际应用给出实例解析。 观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,...

    设计模式之观察者模式

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

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

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

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

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

    观察者模式和设计模式

    观察者模式和设计模式是软件工程中至关重要的概念,它们为构建可维护、可扩展的系统提供了基础。本文将深入探讨这两个设计模式以及与之相关的Java实现。 首先,观察者模式(Observer Pattern)是一种行为设计模式,...

    iOS 设计模式 观察者模式

    观察者模式,也被称为发布-订阅(Publish-Subscribe)模式,是软件设计中的一种行为模式。在iOS开发中,它是一种让多个对象监听或订阅某一个主题对象的状态变化,并在状态变化时自动收到通知的方式。这种模式使得...

    java设计模式系列之观察者模式代码

    通过学习和实践观察者模式,开发者能够更好地理解如何在对象之间建立松耦合的关系,使代码更易于维护和扩展。同时,它也是实现反应式编程的基础,有助于构建更灵活、响应更快的系统。在Java中,`java.util....

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

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

    观察者模式案例学习代码

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

    观察者设计模式demo

    通过分析这个示例,我们可以学习如何在实际项目中应用观察者模式,理解如何在数据变化时维护对象间的松耦合,以及如何在Android开发中有效地更新UI。这种模式对于处理事件驱动和响应式编程场景非常有用,因为它允许...

    ObserverDemo观察者设计模式源码

    观察者设计模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的...通过学习和分析源码,我们可以更好地掌握观察者模式的原理和应用场景,提高我们的设计能力。

    跟我一起学 设计模式-观察者模式

    在“跟我一起学 设计模式-观察者模式”这个资源中,我们可能会学习到以下几个关键知识点: 1. **观察者模式的核心概念**:包括主题(Subject)和观察者(Observer)两个主要角色。主题是被观察的对象,它维护着一个...

    设计模式 之 观察者模式

    在给定的标题“设计模式 之 观察者模式”中,我们可以理解到这个压缩包文件主要关注的是观察者模式在实际应用中的示例。观察者模式的核心概念包括观察者(Observer)和主题(Subject),其中观察者是接收通知的对象...

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

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

    Java常用的3中设计模式代码即工厂模式、单例模式、观察者模式demo

    观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,`java.util.Observable`和`java.util.Observer`接口提供了...

    Head First 之之观察者模式

    《Head First 之观察者模式》是一本深入浅出介绍观察者模式的书籍,通过生动有趣的方式帮助读者理解和掌握这一设计模式。观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生...

    设计模式-观察者模式-作业-observer.zip

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

    java设计模式之观察者模式

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

Global site tag (gtag.js) - Google Analytics