Java情势筹划之单例情势(一)[Java编程]
本文“Java情势筹划之单例情势(一)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
作为对象的成立情势[GOF95], 单例情势确保某一个类只有一个实例,并且自行实例化并向整个系统供应这个实例.这个类称为单例类.
注:本文乃阎宏博士的《Java与情势》一书的第十五章.
引言
单例情势的要点
单例单例
明显单例情势的要点有三个;一是某各类只能有一个实例;二是它必须自行成立这个事例;三是它必须自行向整个系统供应这个实例.在下面的对象图中,有一个"单例对象",而"客户甲"、"客户乙" 和"客户丙"是单例对象的三个客户对象.可以看到,全部的客户对象同享一个单例对象.并且从单例对象到自身的衔接线可以看出,单例对象持有对自己的引用.
资源管理
一些资源管理器常常计划成单例情势.
在计算机系统中,需求管理的资源包含软件外部资源,比方每台计算机可以有若干个打印机,但只能有一个Printer Spooler, 以避免两个打印功课同时输出到打印机中.每台计算机可以有若干传真卡,但是只应当有一个软件负责管理传真卡,以避免呈现两份传真功课同时传到传真卡中的情形.每台计算机可以有若干通信端口,系统该当集合管理这些通信端口,以避免一个通信端口同时被两个恳求同时调用.
需求管理的资源包含软件内部资源,比方,大大都的软件都有一个(乃至多个)属性(properties)文件存放系统配置.这样的系统该当由一个对象来管理一个属性文件.
需求管理的软件内部资源也包含比方负责记录网站来访人数的部件,记录软件系统内部事件、出错信息的部件,或是对系统的表现举行查抄的部件等.这些部件都必须集合管理,不可政出多头.
这些资源管理器构件必须只有一个实例,这是其一;它们必须自行初始化,这是其二;答应整个系统拜候自己这是其三.因此,它们都满意单例情势的条件,是单例情势的利用.
一个例子:Windows 回收站
Windows 9x 今后的视窗系统中都有一个回收站,下图就显示了Windows 2000 的回收站.
在整个视窗系统中,回收站只能有一个实例,整个系统都利用这个惟一的实例,并且回收站自行供应自己的实例.因此,回收站是单例情势的利用.
以上是“Java情势筹划之单例情势(一)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |