`
cakin24
  • 浏览: 1424060 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

单例模式

阅读更多

一 模式定义
1 某个类只能有一个实例。
2 该类必须自行创建这个实例。
3 该类必须自行向整个系统提供这个实例。

 

二单例模式举例
1 模式分析


 
2 使用同步线程安全创建单例对象

package com.demo.singleton;

public class Singleton {

	// 类共享实例对象 实例化
	private static Singleton singleton = null;

	// 私有构造方法
	private Singleton() {
		System.out.println("-- this is Singleton!!!");
	}

	// 获得单例方法
	public synchronized static Singleton getInstance() {
		// 直接返回共享对象
		if(singleton == null)
		{
			singleton = new Singleton();
		}
		return singleton;
	}

}

 3 创建一个类全局对象实例作为单例对象

package com.demo.singleton;

/**
 * 单例设计模式
 * 
 * @author
 * 
 */
public class Singleton {

	// 类共享实例对象 实例化
	private static Singleton singleton = new Singleton();

	// 私有构造方法
	private Singleton() {
		System.out.println("-- this is Singleton!!!");
	}

	// 获得单例方法
	public static Singleton getInstance() {
		// 直接返回共享对象
		return singleton;
	}

}

 4 单例客户端代码

package com.demo;

import com.demo.singleton.Singleton;

/**
 * 客户端应用程序
 * 
 * @author
 * 
 */
public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 首先 检验是否能用new操作符创建Singleton对象实例
		Singleton singleton = Singleton.getInstance();
		// 在此获得Singleton对象实例
		Singleton singleton2 = Singleton.getInstance();
		// 比较两个对象是否是同一个对象实例
		if (singleton == singleton2) {
			System.out.println("--这是同一个对象!");
		} else {
			System.out.println("--这是不同的对象!");
		}
	}
}

 运行结果
-- this is Singleton!!!
--这是同一个对象!


三设计模式
1 确保某个类只有一个实例。
2 自行实例化并向整个系统提供这个实例。

  • 大小: 41.7 KB
分享到:
评论

相关推荐

    43丨单例模式(下):如何设计实现一个集群环境下的分布式单例模式?1

    单例模式是一种设计模式,旨在确保一个类只有一个实例,并提供全局访问点。在单例模式中,类的构造函数是私有的,防止外部直接创建对象,而是通过静态方法获取该类的唯一实例。单例模式的唯一性通常是在进程范围内,...

    设计模式单例模式和工厂模式综合应用

    "设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...

    设计模式之单例模式(结合工厂模式)

    单例模式是软件设计模式中的一种经典模式,它保证了类只有一个实例存在,并提供一个全局访问点。在Java等面向对象编程语言中,单例模式常用于管理共享资源,如数据库连接池、线程池或者配置文件等。结合工厂模式,...

    java单例模式实例

    单例模式是软件设计模式中的一种经典模式,用于确保一个类只有一个实例,并提供一个全局访问点。在Java中,有多种实现单例模式的方法,每种都有其特点和适用场景。接下来,我们将深入探讨这些实现方式。 首先,我们...

    使用C++11实现线程安全的单例模式

    在C++编程中,单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点。线程安全的单例模式在多线程环境下尤其重要,因为不正确的实现可能导致多个线程创建多个实例,这违反了单例模式...

    设计模式——单例模式

    **设计模式——单例模式** 在软件工程中,设计模式是一种在特定场景下解决常见问题的标准方案,可以被复用并提升代码质量。单例模式是设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式...

Global site tag (gtag.js) - Google Analytics