会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
shine_panda
博客园
首页
新随笔
管理
订阅
单例类和单例注册表的实现
1,单例类的实现. 可以保证在非同时多线程多类加载器的环境下的单例
public
class
Singleton
...
{
private
static
Singleton instance;
//
私有化构造方法来防止外部通过new 来创建该类的实例
private
Singleton ()
...
{
}
//
使用 synchronzied 保证线程安全
public
synchronized
static
Singleton getInstance()
...
{
if
(instance
==
null
)
...
{
instance
=
new
Singleton();
}
return
instance;
}
}
2.单例注册表的实现. 用于操作一组对象的聚集
import
java.util.
*
;
public
class
SingletonRegistry
...
{
private
static
SingletonRegistry instance;
private
static
Map factoryMap
=
new
HashMap();
//
私有化构造方法
private
SingletonRegistry()
...
{
}
public
synchronized
static
SingletonRegistry getInstance()
...
{
if
(instance
==
null
)
...
{
instance
=
new
SingletonRegistry();
}
return
instance;
}
public
synchronized
BeanFactroy getBeanFactory(String factoryName)
...
{
BeanFactroy f
=
null
;
//
在注册表中查找看是否有这个BeanFactory的实例
Object o
=
factoryMap.get(factoryName);
if
(o
!=
null
)
...
{
return
(BeanFactroy)o;
}
try
...
{
f
=
(BeanFactroy)Class.forName(factoryName).newInstance();
//
将Bean工厂注册到注册表
factoryMap.put(factoryName,f);
}
catch
(Exception ex)
...
{
ex.printStackTrace();
}
return
f;
}
}
interface
BeanFactroy
...
{
}
/**/
/*
一个单例类,通过Map持有BeanFactory的对象聚集。SingletngRegistry本身只有一个实例 但是
*它可以持有任意多个BeanFactory的实例
*/
posted @
2008-05-22 05:56
shine_panda
阅读(
936
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部