package com.observer;
import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
public class TestObservable extends Observable {
private List<String> list = new ArrayList<String>();
public void invoke(String s) {
list.add(s);
if(list.size() > 5) {
this.setChanged(); //修改标识
this.notifyObservers(list); //触发Observer监听函数
list.clear();
}
}
}
package com.observer;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
public class TestObserver implements Observer {
public void update(Observable o, Object arg) {
if(arg instanceof List) {
List<String> list = (List<String>)arg;
for(String s : list) {
System.out.println(s);
}
}
}
public static void main(String[] args) {
TestObservable test = new TestObservable();
test.addObserver(new TestObserver()); //加入监听
for(int i = 0; i < 15; i ++) {
test.invoke("第" + i + "名");
}
}
}
分享到:
相关推荐
Observer设计模式,也被称为“发布-订阅”(Publish-Subscribe)模式或“依赖倒置”模式,是软件设计中的一种行为模式。它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到...
委托、事件和Observer设计模式是面向对象编程中的关键概念,特别是在C#中有着广泛的应用。本文将深入探讨这三个概念,并通过实例帮助初学者理解和掌握它们。 首先,让我们从委托(Delegate)开始。委托在C#中可以被...
### 详解C#委托,事件,Observer设计模式 在C#编程中,了解并掌握委托、事件以及Observer设计模式对于构建高效、灵活的应用程序至关重要。本文将深入探讨这些概念,并通过具体的示例来帮助理解。 #### 1. 将方法...
在C#编程语言中,委托、事件和Observer设计模式是构建高效、可扩展的应用程序的重要概念。这篇文档将深入探讨这些主题,以帮助你更好地理解它们的用途和实现方式。 首先,我们来看委托(Delegate)。委托在C#中相当...
设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
设计模式之 Observer(观察者) 介绍如何使用 Java API 提供的现成 Observer 设计模式之 Iterator(迭代器) 这个模式已经被整合入Java的Collection.在大多数场合下无需自己制造一个Iterator,只要将对象装入...
一个Android项目的示例,该示例使用AsyncHttpClient(LoopJ)在android应用程序中实现HTTP连接,实现Observer设计模式,并使用Material Design支持库中的多个组件。 他们之中: 工具列 回收站视图 卡视图 ...
5. **观察者模式**:JUnit实现了Observer设计模式,通过TestListener接口通知测试事件,如测试开始、结束、失败等,使得外部系统可以监听测试过程并做出相应反应。 6. **模板方法模式**:JUnit的TestWatcher是一个...
观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在Java和C++等面向对象编程语言中,这种模式广泛用于事件处理和实时系统,...
观察者模式(Observer)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式在C++中广泛应用,特别是在需要...
JDK里提供的observer设计模式的实现由java.util.Observable类和 java.util.Observer接口组成。从名字上可以清楚的看出两者在Observer 设计模式中分别扮演的角色:Observer是观察者角色,Observable是被观察目标...
《设计模式之Observer》 设计模式是软件工程中的一种最佳实践,它们是在特定场景下解决常见问题的经验总结。Observer模式,又称为“观察者模式”或“发布-订阅模式”,是一种行为设计模式,用于在对象之间建立一种...
Observer模式,也被称为“发布-订阅”模式,是软件设计模式中的行为模式之一。它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。Observer模式是实现...
在本书中,作者罗伟富通过 Python 实现了 23 种经典设计模式,包括 Singleton 模式、Factory 模式、Observer 模式等。这些模式可以帮助开发者更好地解决软件开发中的常见问题,例如对象的创建、结构的设计、行为的...
**Observer设计模式** 用于实现一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Drawcli程序中,Observer模式主要用于处理图形对象的状态变化通知,例如当某个图形对象...
观察者模式,也被称为发布-订阅模式或事件驱动模式,是软件设计模式中的一种行为模式。这个模式的主要目的是在对象之间建立一种松散耦合的关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并...
委托在设计模式中的应用非常广泛,例如在Observer设计模式、工厂模式和策略模式中。委托可以使得代码更加灵活和可扩展,提高开发效率和代码质量。 6. 范例说明 在上面的代码中,我们可以看到,使用委托可以使得...