设计模式学习之Observer模式
来源:互联网 发布:mac看视频卡死如何退出 编辑:程序博客网 时间:2024/05/22 17:03
观察者模式实现的效果类似于监听器,可以对某个操作之后执行我们自己的代码;
被观察者需要实现Observable类,在需要监听的方法中设置改变点(setChange),调用notifyObservers方法。
实现Observer接口创建观察者,实现update方法,编写自己的代码。
被观察者类
观察者类
测试代码
输出结果
name change to----->hehe
被观察者类
public class Product extends Observable{ private String name; public Product(String name){ this. name = name; } public void setName(String name) { this. name = name; //设置改变 setChanged(); //触发 notifyObservers(name); } public String getName() { return name; }}
观察者类
public class MyObserver implements Observer { @Override public void update(Observable arg0, Object arg1) { /* * arg0 为被观察对象 * arg1 为 notifyObservers()方法所传入的参数 * */ //根据arg1参数判定执行我们所需要的操作 if(arg1 instanceof String){ System. out.println( "name change to----->"+arg1); } }}
测试代码
public static void main(String[] args) { Product p = new Product( "haha"); p.addObserver( new MyObserver()); p.setName( "hehe"); }
输出结果
name change to----->hehe
- 设计模式学习之Observer模式
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之--Observer
- 设计模式之--Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- 设计模式之Observer
- jquery和js创建节点
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- C/C++关键字
- Java Optimize
- 模板写的单链表(list)
- 设计模式学习之Observer模式
- live555学习笔记4-计划任务(TaskScheduler)深入探讨
- (转)不同linux内核映像的区别
- Linux设备驱动---获知当前时间(高于jiffies精度)
- 字符编码GBK,UTF-8
- 内存
- 每日一案:出资入股协议中欺诈行为的认定与处理---摘自“成都法院网”
- Web 不安全代码只会在使用 /unsafe 编译的情况下出现
- 一则柯西数列证明的实例