Java中使用Observer接口和Observable类实践Observer观察者模式
在Java中通过Observable类和Observer接口实现了观察者模式。实现Observer接口的对象是观察者,继承Observable的对象是被观察者。
|
void addObserver(Observer o)
|
|
setChanged();
notifyObservers();
|
|
void update(Observable o, Object arg)
|
package designpattern_observer;
import java.util.Observable;
public class MyButtonObserable extends Observable {
private String clickMode;
public String getClickMode() {
return clickMode;
}
public void setClickMode(String clickMode) {
this.clickMode = clickMode;
this.setChanged();
this.notifyObservers(clickMode);
}
}
package designpattern_observer; import java.util.Observable;
import java.util.Observer; public class MyTextBoxAbserver implements Observer {
@Override
public void update(Observable o, Object arg) {
if (arg.toString().equals("double clicked")) {
System.out.println("你对按钮执行了双击操作.");
}
}
}
Test类:
package designpattern_observer;
public class ObserverTest {
public static void main(String[] args) {
MyButtonObserable button = new MyButtonObserable();
MyTextBoxAbserver textbox = new MyTextBoxAbserver();
button.addObserver(textbox);
button.setClickMode("double clicked");
}
}
执行入口函数,调用 button.setClickMode("double clicked"),则触发MyTextBoxAbserver 对象的update方法,打印输出:
你对按钮执行了双击操作.
Java中使用Observer接口和Observable类实践Observer观察者模式的更多相关文章
- 利用Java提供的Observer接口和Observable类实现观察者模式
对于观察者模式,其实Java已经为我们提供了已有的接口和类.对于订阅者(Subscribe,观察者)Java为我们提供了一个接口,JDK源码如下: package java.util; public ...
- Java Observer接口和Observable类实现观察者模式
对于观察者模式,其实Java已经为我们提供了已有的接口和类.对于订阅者(Subscribe,观察者)Java为我们提供了一个接口,JDK源码如下: package java.util; public ...
- Java常用类库--观察者设计模式( Observable类Observer接口)
如果要想实现观察者模式,则必须依靠java.util包中提供的Observable类和Observer接口. import java.util.* ; class House extends Obse ...
- Java 中的集合接口——List、Set、Map
Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组 ...
- 转:二十一、详细解析Java中抽象类和接口的区别
转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...
- 关于JAVA中抽象类和接口的区别辨析
今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...
- java中的标记接口(标签接口)
Java中的标记接口(Marker Interface),又称标签接口(Tag Interface),具体是不包含任何方法的接口.在Java中很容易找到标记接口的例子,比如JDK中的Serialzab ...
- Java中的Serializable接口和transient关键字
Java中的Serializable接口和transient关键字 Table of Contents 1. 向memcached中放数据时遇到NotSerializableException异常 2 ...
- Java中抽象类和接口的介绍及二者间的区别
接口(Interface)和抽象类(Abstract Class)是支持抽象类定义的两种机制. 一.抽象类 在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法称 ...
随机推荐
- Codeforces 241B
因为博客园的公式编辑有点坑,所以-- 原题
- linux下主要是VirtualBox及GuestAdditions的安装
Linux版本的VirtualBox下载:http://www.virtualbox.org/wiki/Linux_Downloads.请下载对应的版本. RedHat.RHEL:rpm -i vh ...
- Android 给Button加个监听
1.日期设置控件:DatePickerDialog 2.时间设置控件:TimePickerDialog 实例代码 1.页面添加两个Button,单击分别显示日期设置控件和时间设置控件,还是有TextV ...
- UICollectionView基础学习
相信了解UICollectionView的也一定听过瀑布流吧,开始之前先提供两个瀑布流,有时间的可以深入研究研究 https://github.com/dingpuyu/WaterFall https ...
- C# linq to xml
XDocument doc = new XDocument( new XDeclaration("1.0", "utf-8", "yes") ...
- windows通过cmd重新启动网卡
ipconfig/release ipconfig/renew
- javascript高级知识点——临时作用域
代码信息来自于http://ejohn.org/apps/learn/. 自执行,临时,函数 (function(){ var count = 0; })(); 这是一个简单的自执行匿名函数. 做一个 ...
- bootstrap-js(六)弹出框
实例 为任意元素添加一小块浮层,用于存放非主要信息. 弹出框的标题和内容的长度都是零的话将永远不会被显示出来. 初始化 由于性能的原因,工具提示和弹出框的 data 编程接口(data api)是必须 ...
- Tomcat7配置数据源(Oracle)
修改../conf/content.xml <?xml version='1.0' encoding='utf-8'?> <!-- The contents of this file ...
- bat文件自动编译InnoSetup脚本
今天想制作一个bat文件,打包多个innosetup脚本,参考链接:http://www.cnblogs.com/joean/p/4870428.html 流程: 新建文本文档,将.txt改为.bat ...