中易网

么是单例模式,并写出单例模式的2种实现方式。

答案:1  悬赏:80  
解决时间 2021-01-08 12:07
么是单例模式,并写出单例模式的2种实现方式。
最佳答案
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,以后就不用再生成了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
著名的新加坡、马来西亚艺人有哪些?
炫龙这个笔记本牌子还可以吗
从黄泥河到富源有多远
“褪色”怎么解释?
ppt已经导到ipad上在哪里打开
如何用全自动洗衣机甩干衣服?
东莞市鼎兴房地产中介有限公司怎么样?
中国人民银行(西环路南段)地址有知道的么?有
大学提前批是什么意思?
蚂蚁花呗欠钱两个月不还,现在还完了,要多久
有没有玩91d2暗黑破坏神2的朋友,能继承些ist
求助这种照片是用什么软件p的
电脑屏幕变大了,字体也大了怎么改回原来样子
沙漏的制作原理
Can I have a look是什么意思
推荐资讯
家有儿女火了三人,为什么唯独他不火
我刚才左转弯进入一半就红灯了,我立刻停止行
昨天新剪的短发,因为什么
大湖小学(徐州贾汪区)地址好找么,我有些事要
嘉兴三仟秀童星模特营地址在什么地方,我要处
海尔最开始的起步的情况
现在抖音上什么舞蹈比较火啊
不由自主的近义词是什么?
使用倒U性压差计前为什么要进行排气操作,如
麻烦懂英文的帮个忙:FRONT/L/MID
剪力墙结构采用什么基础
洋葱如何素炒既不脱水有味
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?