Android和设计模式:单例模式
16lz
2021-01-23
最近在继续iPhone 业务的同时还需要重新拾起Android 。在有些生疏的情况下,决定从Android 源码中感悟一些Android 的风格和方式。在学习源码的过程中也发现了一些通用的模式,希望通过一个系列的文章总结和分享下。
单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。Android SDK很庞大。和我们现实中的大组织类似,其中很多的功能靠各种Manager完成的。比如WindowManager、PowerManager、SensorManager、ActivityManager、StorageManager、ServiceManager等等。每个经理都是一个单例。其中的ServiceManager实现示例如下: public final class ServiceManager {
private static final String TAG = "ServiceManager";
private static IServiceManager sServiceManager;
private static IServiceManager getIServiceManager() {
if (sServiceManager != null) {
return sServiceManager;
} // Find the service manager
sServiceManager = ServiceManagerNative.asInterface(BinderInternal.getContextObject());
return sServiceManager;
}
……
}
这样既可以实现全局访问,也可以确保有效资源的充分使用。
单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。Android SDK很庞大。和我们现实中的大组织类似,其中很多的功能靠各种Manager完成的。比如WindowManager、PowerManager、SensorManager、ActivityManager、StorageManager、ServiceManager等等。每个经理都是一个单例。其中的ServiceManager实现示例如下: public final class ServiceManager {
private static final String TAG = "ServiceManager";
private static IServiceManager sServiceManager;
private static IServiceManager getIServiceManager() {
if (sServiceManager != null) {
return sServiceManager;
} // Find the service manager
sServiceManager = ServiceManagerNative.asInterface(BinderInternal.getContextObject());
return sServiceManager;
}
……
}
这样既可以实现全局访问,也可以确保有效资源的充分使用。
更多相关文章
- Linux 下编译Android-VLC开源播放器详解(附源码下载)
- [置顶] android 手机 华为c8650e 无法在mac下 utuntu 下调试 goo
- Android游戏源码合集(主要是AndEngine和Libgdx的)
- Android 二维码 生成和识别(附Demo源码)
- Android的Handler Looper Message机制应用实例与详解(一)
- [置顶] 我的Android进阶之旅------>Android MediaPlayer播放网络
- Android开心消消乐代码实例详解
- Android自学笔记:Android2.3源码下载(针对Windows环境)