| 
 | |
| 
 | 
| 开发:
C++知识库 
Java知识库 
JavaScript 
Python 
PHP知识库 
人工智能 
区块链 
大数据 
移动开发 
嵌入式 
开发工具 
数据结构与算法 
开发测试 
游戏开发 
网络协议 
系统运维 教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 | 
| -> 移动开发 -> Android中观察者模式(Observable)的理解,android应用程序开发第三版答案 -> 正文阅读 | 
|  | 
| [移动开发]Android中观察者模式(Observable)的理解,android应用程序开发第三版答案 | 
| 定义:“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都将得到通知,并自动更新”,这就是所谓的观察者模式,照意思理解那么就一定会有观察者和被观察者了,在Java1.2之后,提供了两个类,即Observable被观察者,Observer观察者; 在Android中也提供了一个类Observable用于观察者模式,下面看看Observable 的源码便可以大意理解了。 /* 
 */ package android.database; import java.util.ArrayList; /** 
 */ public abstract class Observable { /** 
 */ protected final ArrayList mObservers = new ArrayList(); /** 
 */ public void registerObserver(T observer) { if (observer == null) { throw new IllegalArgumentException(“The observer is null.”); } synchronized(mObservers) { if (mObservers.contains(observer)) { throw new IllegalStateException(“Observer " + observer + " is already registered.”); } mObservers.add(observer); } } /** 
 */ public void unregisterObserver(T observer) { if (observer == null) { throw new IllegalArgumentException(“The observer is null.”); } synchronized(mObservers) { int index = mObservers.indexOf(observer); if (index == -1) { throw new IllegalStateException(“Observer " + observer + " was not registered.”); } mObservers.remove(index); } } /** 
 */ public void unregisterAll() { synchronized(mObservers) { mObservers.clear(); } } } 当然这个类只是抽象类,如果我们需要用的话,还需要继承 这个类,这有一个方法,通知被观察者进行更 
 新。 观察者模式是软体设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。 | 
|  | 
| 移动开发 最新文章 | 
| Vue3装载axios和element-ui | 
| android adb cmd | 
| 【xcode】Xcode常用快捷键与技巧 | 
| Android开发中的线程池使用 | 
| Java 和 Android 的 Base64 | 
| Android 测试文字编码格式 | 
| 微信小程序支付 | 
| 安卓权限记录 | 
| 知乎之自动养号 | 
| 【Android Jetpack】DataStore | 
|  | 
| 上一篇文章 下一篇文章 查看所有文章 | 
| 
 | 
| 开发:
C++知识库 
Java知识库 
JavaScript 
Python 
PHP知识库 
人工智能 
区块链 
大数据 
移动开发 
嵌入式 
开发工具 
数据结构与算法 
开发测试 
游戏开发 
网络协议 
系统运维 教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 | 
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/1 4:44:34- | 
| 
 | 
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |