单例模式,可以说是GOF的23种设计模式中最简单的一个。
这个模式相对于其他几个模式比较独立,它只负责控制自己的实例化数量单一(而不是考虑为用户产生什么样的实例),很有意思,是一个感觉上很干净的模式,本人很喜欢这个模式。
android中很多地方都用到了单例模式,本文以输入法管理者InputMethodManager为例,展开分析。
单例模式,Singleton Pattern,能够以其特有的优势,替代系统中全局变量,应用非常广泛。
1.意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
热门词汇:单例 唯一 私有构造
2.结构
android中有很多系统级别的全局变量,如时间,输入法,账户,状态栏等等,android中对这些都直接或者有些间接用到了单例模式。
以输入法为例,把上图修改为实际情况:
非常的简单,但是有一点,从上面我们也看到了synchronized关键字,在多线程的环境下,单例模式为了保证自己实例数量的唯一,必然会做并发控制。
类似这种线程安全的单例,跨进程的单例,参数化的单例等等的情况,确实超出本文的范围,而且都涉及到很多东西,是一个很大的话题,不好展开。
3. 代码:
客户端调用,比如contextimpl中的getSystemService()方法中如下调用:
非常简单,干净的一个模式。
4.效果
(1).创建型模式。
(2).对唯一实例的受控访问。
(3).避免全局变量污染命名空间。
(4).允许对操作和表示的精化。
(5).比类操作更灵活。
相关推荐
opencv-3.4.4-android-sdk/sdk/build.gradle opencv-3.4.4-android-sdk/sdk/etc opencv-3.4.4-android-sdk/sdk/java
Android设计模式系列(2)--SDK源码之观察者模式.pdf
opencv-3.4.13-android-sdk .zip压缩包
arcgis-android-sdk-v10.2.3,arcgis for android 开发的工具库,导入eclipse即可
本篇文章介绍了,基于Android设计模式之--SDK源码之策略模式的详解。需要的朋友参考下
opencv-4.6.0-android-sdk.zip
opencv-4.5.4-android-sdk .zip
taobao-sdk-java-auto源码, taobao-sdk-java-auto源码, taobao-sdk-java-auto源码, taobao-sdk-java-auto源码
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版: ...
官方版本,亲测可用
arcgis-android-sdk-10.2.8-1
将android-17.zip解压到 Android\android-sdk\platforms 文件夹下。
最新release的opencv 4.5.0 android sdk, 有需要的同学可以下载了。最新release的opencv 4.5.0 android sdk。
百度ORC识别aip-ocr-android-sdk-1.4.3.rar
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内核之上构建的,具有安全性优势。
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-windows-1.5_r3.part01.rar 离线包 2分卷 android-sdk-windows-1.5_r3.part01.rar 离线包 2分卷 android-sdk-windows-1.5_r3.part01.rar 离线包 2分卷
Android SDK (SDK Platforms)-android-30.zip