永发信息网

android 怎么调用单例模式的类

答案:2  悬赏:70  手机版
解决时间 2021-02-27 06:34
android 怎么调用单例模式的类
最佳答案
java模式之单例模式:
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录
数据库连接都需要这样的单线程操作。一些资源管理器常常设计成单例模式。
外部资源:譬如每台计算机可以有若干个打印机,但只能有一个Printer
Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干个通信端口,系统应当集中管理这些通信端口,以避免一个通信端口被两个请求同时调用。内部资源,譬如,大多数的软件都有一个(甚至多个)属性文件存放系统配置。这样的系统应当由一个对象来管理这些属性文件。

一个例子:Windows
回收站。
在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个惟一的实例,而且回收站自行提供自己的实例。因此,回收站是单例模式的应用。

两种形式:
1,饿汉式单例类

public class Singleton {

private Singleton(){}

//在自己内部定义自己一个实例,是不是很奇怪?

//注意这是private 只供内部调用

private static Singleton instance =
new Singleton();

//这里提供了一个供外部访问本class的静态方法,可以直接访问

public static Singleton getInstance() {

return instance;

}

}

2,懒汉式单例类

public class Singleton {

private static Singleton instance = null;

public static synchronized Singleton
getInstance() {

//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次

//使用时生成实例,提高了效率!

if (instance==null)

instance=new Singleton();

return instance;   }

}

第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。

注意到lazy
initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。
一般来说第一种比较安全

我自己比较常用的方式:

public class Singleton {

private volatile static
Singleton singleton;

private Singleton(){}

public static Singleton getInstance(){

if(singleton==null){

synchronized(Singleton.class){

if(singleton==null){

singleton=new Singleton();

}

}

}

return singleton;

}

}
全部回答
a中声明一个handler b的asynctask结束的时候给a的handler发消息 或者是 a中注册一个reciever b的asynctask结束时 发广播
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
过几天打算带女朋友去哈尔滨玩两天,这个季节
南洋胡氏的棕子床垫怎样
谁知道公证用身份证复印件可以办理吗?
菏泽北收费站在什么地方啊,我要过去处理事情
何时雾散尽番外书包网
视界眼镜直通车这个地址在什么地方,我要处理
6s苹果手机闪屏什么原因
患者,男,50岁。肝硬化病史3年,近1个月来肝
请问,亲爱的,你真叫我难以割舍,我发现我自己
沃多香云南过桥米线在哪里啊,我有事要去这个
变异扭转书能用增幅过的么
【真想去北京作文400字】真想去北京作文
三有动物是指
汇通快递是ems吗
永字小篆怎么写
推荐资讯
2010年大众宝来尺寸
时风电动轿车环宇总经销地址有知道的么?有点
国外电压是多少?
大沙河村这个地址在什么地方,我要处理点事
姓张的名字
flash中如何判断一个动态文本框的内容与另一
满亿100超市在什么地方啊,我要过去处理事情
I hope you are trust yourseIf中文是什么意
为什么有道词典的电脑版图标是蓝色的,手机版
西班牙包包有什么牌子
12.3x4X0.25的简便方法
谁能发个NBA2K9灌篮高手完整版游戏的下载地址
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?