今天写点软件,想想Observer模式可以解决我的问题。
应用挺简单,监控一个类里面的字符串属性的值。
这个类,可能有多个对象监控。
网上搜下,java内置支持Observer模式。
被观察者,继承Observable
观察者实现Observer接口
分别来自:
import java.util.Observable;
import java.util.Observer;
详细参考代码:
test_001为测试功能入口,将打印两次func
import java.util.Observable;
import java.util.Observer;
import org.junit.Test;
public class testObservable {
class DevObservable extends Observable
{
String name;
public void func()
{
name = "func";
setChanged(); //设置被观察者内容改变
notifyObservers(); //将引起观察者调用update
}
public String getName()
{
return name;
}
}
class DevObserver implements Observer
{
@Override
public void update(Observable o, Object arg) {
// TODO Auto-generated method stub
DevObservable d =(DevObservable)o;
System.out.println(d.getName());
}
}
@Test
public void test_001()
{
DevObservable d= new DevObservable();
DevObserver ds = new DevObserver();
d.addObserver(ds);
d.func();
d.func();
}
}
分享到:
相关推荐
在Java中,Observer模式主要通过java.util.Observable和java.util.Observer接口来实现。Observable类代表被观察的对象,Observer接口定义了观察者的基本行为。当Observable对象的状态发生变化时,会调用Observer接口...
请选用适当的设计模式,编写一个股票行情分析软件,随着时间的推移和股票价格的变动,实现各种指标的动态更新(要求至少实现一个股票的分时图和K线图:为降低编程工作量,K线图可以用开盘价、收盘价、最高价、最低价...
在实际应用中,Observer模式可以用于处理事件驱动编程,例如在GUI系统中,当用户进行某个操作时,可以触发事件,而多个组件可以作为观察者来监听并处理这些事件。另一个例子是在多线程环境中,一个线程的状态变化...
标题中的"OBserver模式设计实现"是指探讨如何在实际编程中应用观察者模式,无论是用Java还是C++。Head First系列书籍是著名的编程学习资源,以易懂的方式解释复杂的设计模式。在描述中提到的"Head First模式设计用的...
《设计模式——Java语言中的应用》是一本专为Java开发者深入理解面向对象设计而编写的经典书籍。设计模式是软件工程领域中经过实践验证的、解决常见问题的有效方案,它们代表了在特定上下文中,针对特定问题的最优...
在《Java设计模式》这本书的模拟试题及其参考答案中,涉及了多条设计模式的知识点,以及它们的应用场景和实现方法。现在将这些知识点详细地解释如下: 1. 开闭原则(Open-Closed Principle, OCP): 开闭原则是面向...
《Java与模式》是阎宏博士撰写的一本经典IT著作,深入浅出地探讨了如何在Java编程中应用设计模式。这本书的光盘源码包含了书中提到的各种模式的实例代码,为读者提供了实践和理解设计模式的宝贵资源。在本文中,我们...
在给定的文件中,我们看到一个具体的Observer模式应用例子,涉及到`Product`类和两个观察者`NameObserver`和`PriceObserver`。`Product`类代表商品,具有`name`和`price`属性,并且扩展了`Observable`类。当商品的...
这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...
本篇文章将深入探讨几个Java设计模式的经典例子,包括它们的原理、应用场景以及如何在实际项目中实施。 1. 单例模式:单例模式确保一个类只有一个实例,并提供全局访问点。在Java中,通常通过双重检查锁定(Double-...
下面将总结五种常用的Java设计模式,分别是单例模式、工厂模式、建造模式、_observer模式和迭代器模式。 单例模式 单例模式是一种创造型设计模式,主要目的是使内存中保持一个对象。单例模式可以保证在整个应用...
本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与应用,特别是针对刘伟教授的相关课程的课后习题及模拟试题的解答。 设计模式分为三大类:创建型、结构型和行为型模式。...
观察者模式(Observer模式)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。在Java中,这个模式是通过`java.util....
在“Java设计模式及案例1”中,你可能会学习到如何在实际项目中应用这些模式。例如,单例模式用于确保一个类只有一个实例并提供全局访问点;工厂方法模式允许子类决定实例化哪一个类;抽象工厂模式则在一组相关或...
刘伟老师的《Java设计模式》课后答案PDF文件,包含了对书中各章节练习题的详细解答,这对于读者理解每个设计模式的实现和应用场景非常有帮助。通过学习这些答案,读者可以更好地巩固所学知识,将理论与实践相结合,...
在这个场景中,我们将讨论如何在Java中应用Observer模式,特别是在电子商务系统中的应用。 Observer模式的核心思想是定义一个一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象的状态发生变化...
Java的`Observer`和`Observable`接口实现了观察者模式。 13. **责任链模式**:避免请求的发送者和接收者之间的耦合,将多个处理者组织成链,请求沿着链传递,直到被某个处理者处理。在Java中,异常处理机制某种程度...
在Java中,字符串池就是一个典型的享元模式应用。 12. **命令模式(Command)** 命令模式将请求封装为一个对象,以便使用不同的请求、队列请求、记录请求或者支持撤销操作。在Java中,Swing中的ActionListener就是...
Java的IO流体系就是一个很好的装饰器模式应用示例。 六、策略模式(Strategy) 策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用它的客户。在Java中,可以...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以被复用在各种不同的软件系统中...这将是一个很好的学习资源,帮助开发者将设计模式应用到实际项目中,从而提升软件质量和可维护性。