浏览 1321 次
锁定老帖子 主题:单例模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-07
一个私有构造方法 用于实现连接池连接数据库。 一个私有的静态的成员变量 用于new 构造方法。 一个公共的静态方法。 用于对外提供公共调用的方法。 适用单例的地方。 1某些资源只加载一次可以使用它 比如:读取配置文件。 2对象只创建一次 缺点:不能继承了,可能存在线程安全问题 饿汉式 懒汉式(存在线程安全问题) 1.一个私有静态成员变量。 2.一个私有构造方法。 3.一个公共的静态方法。 单例模式的适用场景: 1.类中没有可以修改的成员变量(这个类没有状态),如果存在修改的成员 变量会产生线程安全问题,不建议使用。 2.单例模式无法继承,所有无法扩展无法更换它的实现,如夺取配置文件比较适合使用单例模式。 /** * 饿汉式 */ package cai.ming.dbcp; import java.sql.Connection; public class DBManager { /* * 1.创建一个私有的静态方法。 */ private static DBManager instance = new DBManager(); /* * 2.创建一个私有的构造方法,实现连接池与数据库进行连接 */ private DBManager() { //连接池对数据库进行连接 } /* * 创建一个静态的公共方法 */ public static DBManager getDBManager() { return instance; } } /** * 懒汉式 */ package cai.ming.dbcp; public class DBManager { /* * 1.创建一个私有的静态方法。 */ private static DBManager instance ; /* * 2.创建一个私有的构造方法,实现连接池与数据库进行连接 */ private DBManager() { //连接池对数据库进行连接 } /* * 创建一个静态的公共方法 */ public static synchronized DBManager getDBManager() { if(instance == null) { instance = new DBManager(); } return instance; } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |