首页
论坛
图书
开发资料
在线文档
网址
下载
联系我们
 新闻│Java│JavaScript│Eclipse│Eclipse 英文│J2EE│J2ME│J2SE│JSP│Netbeans│Hibernate│JBuilder│Spring│Struts
站内搜索: 请输入搜索关键词

当前页面: 开发资料首页 → Java 专题 → Singleton模式在Java中的应用

Singleton模式在Java中的应用

摘要: Singleton模式在Java中的应用

</td> </tr> <tr> <td width="513" height="35" valign="top" class="ArticleTeitle"> 程序中经常有这样的要求,整个程序运行时只有一个实例被使用。
比如:数据库连接池,系统参数配置,Java API 中的 Runtime, Calendar ...
如何实现这种需求。
代码如下
public class ConnectionPoolManager {
private static instance = null;
private ConnectionPoolManager() {
// do some initialize work
}

public static void getInstance() {
if (instance == null){
instance = new ConnectionPoolManager();
}
return instance;
}

public Connection getConnection(){
}
}

ConnectionPoolManager 的使用
public class QueryFunctions {
public static Collection findStudentByName(String name){
ConnectPoolManager connectionPoolManager =ConnectionPoolManager.getInstance();
Connection conn = connectionPoolManager.getConnection();
// query database
}
}

1.instance 是私有的,开始时赋值为 null,外部只有通过 getInstance 方法才能获得他。

2.构造方法是私有的,这点很重要,保证只有这个类自己才能够调用,其他的类无法调用此构造函数。

3.getInstance 方法中:
if 语句,保证只有一个 instance 存在唯一的一个 ConnectionPoolManager 在第一次调用的时候被建立。

下面是另一个例子: java.lang.Runtime的实现如下:
public class Runtime {
private static Runtime currentRuntime = new Runtime();
public static Runtime getRuntime() {
return currentRuntime;
}

/** Don‘t let anyone else instantiate this class */
// 够狠
private Runtime() {}
}
function TempSave(ElementID) { CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value); CommentsPersistDiv.save("CommentXMLStore"); } function Restore(ElementID) { CommentsPersistDiv.load("CommentXMLStore"); document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent"); } </td> <td width="171" align="center" valign="top" class="ArticleTeitle">
</td> </tr> <tr> <td height="25" colspan="2" valign="top" class="ArticleTeitle">


↑返回目录
前一篇: JSP中的COOKIE操作
后一篇: 一个字符串替换函数

首页 | 全站 Sitemap | 联系我们 | 设为首页 | 收藏本站
版权所有 Copyright © 2006-2007, Java 编程资料牛鼻站, All rights reserved