`

1.23种设计模式的Java版--Singleton(单例)

阅读更多

      所谓的单例模式是指单个实例,单即单个的意思,例乃实例的意思,就是一个类生成的对象。因此,单例模式的功能作用就是保证一个类只生成一个对象,是在代码级的实现,不是人工维护的。

      单例模式的实现需要以下两个步骤:

          1.单例类有一个存贮单例的私有属性

          2.单例类的构造方法必须是私有的

          3.单例类要有获取单例类实例的静态方法

      单例类示例:

package com.tao.pattern.singleton;

/**
 * @author TaoistWar
 * 
 */
public class Singleton {
	// 1.单例类有一个存贮单例的私有属性
	private static Singleton singleton = new Singleton();

	// 2.单例类的构造方法必须是私有的
	private Singleton() {
	}

	// 3.单例类要有获取单例类实例的静态方法
	public static Singleton getInstance() {
		return singleton;
	}
}
 
package com.tao.pattern.singleton;

/**
 * 
 * @author TaoistWar
 *
 */
public class LazySingleton {
	// 1.单例类有一个存贮单例的私有属性
	private static LazySingleton singleton;

	// 2.单例类的构造方法必须是私有的
	private LazySingleton() {

	}

	// 3.单例类要有获取单例类实例的静态方法
	public synchronized static LazySingleton getInstance() {
		if (singleton == null) {
			singleton = new LazySingleton();
		}
		return singleton;
	}
}

    比较:

          饿汉式单例:加载时生成单例,获取单例时不需要考虑多线程

          懒汉式单例:调用时生成单例,获取单例时如果多线程需要加synchronized锁定方法以保证单例。

 

    结论:

          因为在我们的开发中,如果使用单例模式,肯定会用到,废话!呵呵。所以,每次调用加个synchronized锁的效率没有不加高。因此,推荐第一种直接在私有属性中生成实例。

 

 

 

分享到:
评论

相关推荐

    java设计模式----单例模式

    单例模式是其中最常用的一种,它的核心思想是确保一个类只有一个实例,并提供全局访问点。单例模式的应用场景包括:控制资源的访问、管理复杂的初始化过程以及在系统中创建一个全局的配置对象等。 单例模式分为两种...

    大话设计模式--Singleton(单例模式)

    单例模式是软件设计模式中的一种经典模式,它在许多场景下被广泛使用,尤其是在需要全局唯一实例的情况下。本文将深入探讨单例模式的概念、作用、实现方式以及其在实际编程中的应用。 单例模式的核心思想是确保一个...

    Java面向对象(高级)- 单例(Singleton)设计模式

    总的来说,单例模式是一种强大的设计模式,它在许多场合下都能帮助我们更好地组织代码,控制资源,提高程序的可维护性和可扩展性。在实际开发中,应根据具体需求选择合适的设计模式,以达到最佳效果。

    设计模式--单例模式java例子

    单例模式是软件设计模式中的一种经典模式,它在Java编程中被广泛使用。这个模式的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这样做的好处在于可以控制实例的数量,减少资源消耗,同时便于协调整个...

    Java设计模式-单例模式详解

    单例模式是 Java 设计模式中的一种常用的设计模式,旨在保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的目的是为了保证在一个进程中,某个类有且仅有一个实例。 实现单例模式的步骤: 1. 只有 ...

    设计模式-单例模式

    单例模式是一种广泛应用于软件设计中的创建型设计模式,它的核心思想是确保一个类只有一个实例,并提供一个全局访问点。这样做的好处在于控制共享资源的访问,比如线程安全的数据库连接池或者配置管理等。 在Java中...

    Qt qml Singleton 单例模式

    在Qt的Qml环境中,单例模式是一种设计模式,它允许在整个应用程序中创建一个全局访问点,确保某个类只有一个实例存在。这样的设计模式在需要共享数据或者服务时非常有用,避免了多处创建相同对象导致的数据不一致或...

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    这三种设计模式在实际开发中有着广泛的应用。理解并熟练运用它们,能帮助开发者编写更加灵活、可维护的代码。在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你...

    java设计模式---诙谐易懂版

    例如,代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)、适配器模式(Adapter Pattern)、模板方法模式(Template ...

    C#面向对象设计模式纵横谈-1.Singleton 单件(创建型模式)

    Singleton模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。这种模式在需要控制资源的唯一性或者全局访问点时非常有用,比如数据库连接、线程池或者缓存管理等。 ...

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    - 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。 - 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。 - 抽象工厂模式(Abstract Factory):...

    Java-设计模式-单例模式-实现源码(简单实现、双重检查锁、静态内部类、枚举类)

    单例模式是软件设计模式中的一种经典模式,其主要目的是保证一个类只有一个实例,并提供一个全局访问点。在Java中,有多种实现单例模式的方法,包括简单实现、双重检查锁定(Double-Checked Locking)、静态内部类和...

    java单例模式实例

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

    java设计模式-单例.pdf

    ### Java设计模式——单例模式详解 #### 一、单例模式概述 单例模式是设计模式中的一个重要组成部分,属于创建型模式之一。其主要作用是确保某个类仅有一个实例存在,并提供一个全局访问该实例的方法。这在很多场景...

    java-单例模式几种写法

    单例模式是软件设计模式中的一种,用于控制类的实例化过程,确保一个类只有一个实例,并提供全局访问点。在Java中,实现单例模式有多种方法,每种方法都有其特点和适用场景。以下是对这六种常见单例模式实现方式的...

    设计模式专题之(一)单例模式---设计模式单例模式模式示例代码(python--c++)

    单例模式是软件设计模式中的一种基础且广泛应用的模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在资源管理、配置对象、缓存等场景下非常常见,因为它可以避免因频繁创建和销毁对象而...

    常见设计模式-单例模式

    单例模式是一种常见的设计模式,它的主要作用是确保在内存中仅创建一次对象,并提供一个全局访问点。单例模式有两种类型:饿汉类型和懒汉类型。 饿汉类型的单例模式是在类加载时创建对象,例如: ```java class ...

    java-thread-safe-singleton-pattern.rar_starvation

    在Java单例模式中,延迟加载可以提高程序的运行效率,因为它避免了不必要的初始化开销。常见的延迟加载单例实现有懒汉式(Lazy Initialization)和饿汉式(Eager Initialization)。但是,简单的懒汉式单例在多线程...

    Qt单例设计模式(1-8)

    本系列教程将会逐步介绍如何创建和使用Qt单例模式,从基本的实现到更复杂的场景应用,帮助开发者掌握这一重要的设计模式,提高代码的复用性和可维护性。通过学习和实践,你将能够更好地理解和运用Qt中的单例设计模式...

Global site tag (gtag.js) - Google Analytics