Java学习笔记——利用接口和observer实现对象监视
来源:互联网 发布:mac os x 10.11.3 编辑:程序博客网 时间:2024/05/16 18:14
Java中,又可以监视类变化的observer,一旦被监视类发生改变,可以立刻产生响应函数,具体实现如下:
JekyllAndHyde.java中
/*Observable的继承类,用于实现监视器的各项功能*/import java.util.*;public class JekyllAndHyde extends Observable {public void drinkPotion(){name="Mr.Hyde";setChanged();//observer类中函数,标记要观察的对象发生改变notifyObservers();//一旦观察的对象发生变化,这个函数边会通知各个观察器,同时利用clearObserver函数清除对象改变标记}public String getName(){//返回名字return name;}private String name="Dr. Jekyll";}Person.java中
/*创建可以被监视的对象类,返回人员的名字和话语 * 接口是可以定义一系列的功能函数,在接口中可以并不具体定义,可以在类中具体实现 * */import java.util.*;public class Person implements Observer {public Person(String name, String says) {this.name = name;this.says = says;}public void update(Observable thing,Object o){//实现Observer接口中必有的函数System.out.println("It's "+((JekyllAndHyde)thing).getName()+"\n"+name+": "+says);}private String name;private String says;}Horrific.java中
import java.util.*;public class Horrific {/** * @param args */public static void main(String[] args) {// TODO 自动生成方法存根JekyllAndHyde man = new JekyllAndHyde();Observer[] crowd = {//创建监视器,person是实现observer的接口,可以类似于出自一个基类new Person("Officer", "What's all this then?"),new Person("Eileen Backwards","Oh, no, it's horrible-those teeth!"),new Person("Phil McCavity","I'm your local dentist-here's my card."),new Person("Slim Sagebrush","What in tarnation's goin' on there?"),new Person("Freaky Weirdo","Real cool, man. Where can I get that stuff?") };for(Observer observer:crowd){man.addObserver(observer);//为类添加监视器,一个对象可以添加多个监视器}man.drinkPotion();//一旦有改变,setchange会传达给各个监视器,从而产生反应函数,从输出结果可以看出,addObserver中使用的是堆栈}}实现结果如下:
0 0
- Java学习笔记——利用接口和observer实现对象监视
- 学习笔记——Observer和Mediator
- Java Observer接口学习
- java学习笔记《面向对象编程》——接口
- 面相对象—学习笔记—java中的接口
- Java学习笔记——利用Serializable写入对象
- Java表达式、流控制、数组、字符串和类、对象、包、接口——Java学习笔记(三)
- Java学习笔记——接口的多实现技术
- JAVA学习笔记Day25——动态接口的实现
- java学习笔记:利用TreeSet排序时Comparator接口和Comparable接口
- 观察者模式(Observer)——接口与委托实现
- 【Java学习笔记】Comparable接口的实现和使用
- 【Java学习笔记】Comparable接口的实现和使用
- 【Java学习笔记】Comparable接口的实现和使用
- 【Java学习笔记】Comparable接口的实现和使用
- 【Java学习笔记】Comparable接口的实现和使用
- java学习笔记8——抽象类和接口
- java学习笔记之—接口和抽象类
- Compiling Fortran
- spring 依赖注入的学习
- 华东交通大学2013年ACM“双基”程序设计竞赛
- 多线程 -- 可等待的计时器内核对象
- java enum(枚举)使用详解 + 总结
- Java学习笔记——利用接口和observer实现对象监视
- List集合之间的连接
- Sum Sum Sum
- 通达OA 常用内置函数示例(图文)
- 多线程 -- 原子访问
- UIBinder template should be in client package.
- 黑马程序员 反射
- 一个可以直接使用的可用iptables配置的stateless NAT实现
- hdu - 1029 -Ignatius and the Princess IV