单例模式,可以说是GOF的23种设计模式中最简单的一个。
这个模式相对于其他几个模式比较独立,它只负责控制自己的实例化数量单一(而不是考虑为用户产生什么样的实例),很有意思,是一个感觉上很干净的模式,本人很喜欢这个模式。
android中很多地方都用到了单例模式,本文以输入法管理者InputMethodManager为例,展开分析。
单例模式,Singleton Pattern,能够以其特有的优势,替代系统中全局变量,应用非常广泛。
1.意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
热门词汇:单例 唯一 私有构造
2.结构
android中有很多系统级别的全局变量,如时间,输入法,账户,状态栏等等,android中对这些都直接或者有些间接用到了单例模式。
以输入法为例,把上图修改为实际情况:
非常的简单,但是有一点,从上面我们也看到了synchronized关键字,在多线程的环境下,单例模式为了保证自己实例数量的唯一,必然会做并发控制。
类似这种线程安全的单例,跨进程的单例,参数化的单例等等的情况,确实超出本文的范围,而且都涉及到很多东西,是一个很大的话题,不好展开。
3. 代码:
客户端调用,比如contextimpl中的getSystemService()方法中如下调用:
非常简单,干净的一个模式。
4.效果
(1).创建型模式。
(2).对唯一实例的受控访问。
(3).避免全局变量污染命名空间。
(4).允许对操作和表示的精化。
(5).比类操作更灵活。
相关推荐
opencv-3.4.13-android-sdk .zip压缩包
arcgis-android-sdk-v10.2.3,arcgis for android 开发的工具库,导入eclipse即可
opencv-4.5.4-android-sdk .zip
opencv-4.6.0-android-sdk.zip
opencv-3.2.0-android-sdk.7z,此压缩包未包含apk。对应的apk下载链接为 http://download.csdn.net/detail/kangda/9815618
Android Framework Source Code , sdk19的源码,附关联方法: 打开Eclipse,随便新建一个Android项目,在此项目目录下面有个Android 4.4,点击展开遍出现了android.jar。右键此包---->Properties,在弹出的窗口中,...
android 4.1 最新SDK Windows版: http://s1.eoeandroid.com/sdk/4.1/android-sdk_r20-windows.zip(推荐) http://s1.eoeandroid.com/sdk/4.1/installer_r20-windows.exe Mac版: ...
官方版本,亲测可用
taobao-sdk-java-auto源码, taobao-sdk-java-auto源码, taobao-sdk-java-auto源码, taobao-sdk-java-auto源码
arcgis-android-sdk-10.2.8-1
将android-17.zip解压到 Android\android-sdk\platforms 文件夹下。
百度ORC识别aip-ocr-android-sdk-1.4.3.rar
sdkmanager是一个命令行工具,您可以用它来查看、安装、更新和卸载 Android SDK 的软件包。如果使用 Android Studio,则无需使用此工具,而可以从 IDE 管理 SDK 软件包。
android-sdk-windowsandroid-sdk-windowsandroid-sdk-windowsandroid-sdk-windowsandroid-sdk-windowsandroid-sdk-windowsandroid-sdk-windows
Android-sceneform-android-sdk.zip,面向android的sceneform sdk,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
Android SDK (SDK Platforms)-android-34.zip
card.io SDK for Android card.io provides fast, easy credit card scanning in mobile apps. Stay up to date Please be sure to keep your app up to date with the latest version...Subscribe to our card-io-sdk-
Android SDK (SDK Platforms)-android-30.zip
opencv-3.4.4-android-sdk/sdk/native/3rdparty opencv-3.4.4-android-sdk/sdk/native/jni opencv-3.4.4-android-sdk/sdk/native/staticlibs
在Android SDK源码中,观察者模式被广泛应用于对象间的通信,例如数据变更时的通知机制。本文将深入探讨这种模式在Android中的应用,以AbstractCursor为例进行解析。 在观察者模式中,有两个关键角色:观察者...