用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

海大软件1102班    -  云代码空间

—— 你究竟输入什么了导致它崩溃?

设计模式——单例模式

2012-12-10|2366阅||

摘要:    单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。    单例模式的优缺点 一、优点         1、单例模式在内存中只有一个实例,减少了内存开始,特别是一个对象频繁创建销毁时,使用单

    单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。

    单例模式的优缺点
  • 一、优点
        1、单例模式在内存中只有一个实例,减少了内存开始,特别是一个对象频繁创建销毁时,使用单例模式就很不错(也可以采用static)

        2、采用单例模式可以减少性能开销
  • 二、缺点
        1、单例模式一般无接口,难扩展

        2、对测试不利(必须完成单例模式才能测试,无法虚拟对象)


    应用:

        1.普通形式
/**
 * 单例模式的普通形式
 */
public class Singleton {
	private static Singleton instance = null;

	private Singleton() {
		// do something
	}

	public static Singleton getInstance() {
		if (instance == null) {
			instance = new Singleton();
		}
		return instance;
	}
}
        2.第二种形式:
/**
 * 单例模式第二种形式
 */
public class Singleton {
	// 在自己内部定义自己的一个实例,只供内部调用
	private static Singleton instance = new Singleton();

	private Singleton() {
		// do something
	}

	// 这里提供了一个供外部访问本class的静态方法,可以直接访问
	public static Singleton getInstance() {
		return instance;
	}
}

3.双重锁形式
public class Singleton {
	private static Singleton instance = null;

	private Singleton() {
		// do something
	}

	public static Singleton getInstance() {
		if (instance == null) {
			synchornized(Singleton.class){
				if (null == instance) {
					instance = new Singleton();
				}
			}
		 }
		return instance;
	}
}

顶 8踩 4收藏
文章评论
    发表评论

    个人资料

    • 昵称: 海大软件1102班
    • 等级: 初级设计师
    • 积分: 2516
    • 代码: 147 个
    • 文章: 70 篇
    • 随想: 11 条
    • 访问: 243 次
    • 关注

    站长推荐