`

Singleton三种实现方法(effective java笔记)

    博客分类:
  • java
 
阅读更多
public enum SingletonEnum {

	/**枚举类型方法
	 * 此方法更为简洁,无偿提供了序列化机制,当然也防止了多次实例化(即使在复杂序列化和发射时)
	 * 单元素枚举类型已经成为实现singleton的最佳方法
	 * @param args
	 */
	INSTANCE;
	public void doWork(){
		System.out.println("Enum Singleton dowork");
	}

  }

public class SingletonPubField {

	/**公有域方法
	 *  
	 */
	public static final SingletonPubField INSTANCE = new SingletonPubField();
	public void doWork(){
		System.out.println("PubField SingletonPub dowork");
	}

}

public class SingletonStFactory {

	/**静态工厂方法
	 * @param args
	 */
	private static final SingletonStFactory INSTANCE = new SingletonStFactory();;
	public SingletonStFactory() {
	}
	public static SingletonStFactory getInstance(){
		return INSTANCE;
	}
	public void doWork(){
		System.out.println("staticfactory singleton dowork");
	}
}

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		 SEnum();
		 SPubF();
		 SStF();
	}
	
	public static void SEnum(){
		SingletonEnum.INSTANCE.doWork();
	}
	public static void SPubF(){
		SingletonPubField.INSTANCE.doWork();
	}
	public static void SStF(){
		SingletonStFactory.getInstance().doWork();
	}

}
分享到:
评论

相关推荐

    singleton设计模式java实现及对比

    在Java中,Singleton模式的实现有多种方式,每种方式都有其优缺点,我们将详细探讨这些实现方法并进行对比。 ### 1. 饿汉式(Static Final Field) 这是最简单的Singleton实现方式,通过静态初始化器在类加载时就...

    java笔记 java笔记

    - **方法(Method)**:函数在Java中的另一种说法,用来执行特定任务的一段代码。 - **包(Package)**:用于组织类和接口的命名空间。 #### 3. 定义、关键字和类型 ##### 3.1 注释的三种形式 - **单行注释**:使用`/...

    Singleton两种代码实现

    单例模式,Singleton两种代码实现。一般实现方法,泛型实现方法(推荐)

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

    这里我们将深入探讨三种常见的Java设计模式:单例(Singleton)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。 **单例模式(Singleton)** 单例模式确保一个类只有一个实例,并提供一个全局访问点...

    java笔记.docx

    // 实现方法体 } } ``` 【interface关键字】 接口是抽象方法和常量的集合,不能包含方法的实现。接口中的所有方法默认都是`public abstract`的,常量默认为`public static final`。一个类可以实现多个接口,接口...

    JAVA单例模式的几种实现方法

    ### JAVA单例模式的几种实现方法 #### 一、饿汉式单例类 饿汉式单例类是在类初始化时就已经完成了实例化的操作。这种实现方式简单且线程安全,因为实例化过程是在编译期间完成的,不会受到多线程的影响。 **代码...

    Java 单例模式Singleton

    简单的单例模式举例Singleton 分为恶汉式 懒汉式

    Effective-Java读书笔记(上)

    ### Effective Java读书笔记(上) #### 第一章 引言 本书主要针对Java开发者提供了大量实用的编程指导建议,帮助读者提升代码质量和程序性能。在本章节中,我们将重点介绍对象的创建与销毁,以及一些重要的设计...

    Java的Singleton模式代码(免资源分)

    在给出的描述中提到“Java的Singleton模式代码”,这提示我们主要关注于如何通过不同的实现方式来创建一个符合Singleton模式的Java类。接下来,我们将详细探讨几种常见的Singleton实现方式及其优缺点。 #### 二、...

    单例模式Singleton(java源码)

    单例模式的特点有三: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,...

    java Singleton单例模式

    Java中的Singleton(单例模式)是一种常用的软件设计模式,它保证了类只有一个实例,并提供一个全局访问点。这种模式在需要频繁创建和销毁对象的场景中特别有用,因为它可以节省系统资源,例如数据库连接或者线程池...

    singleton_单例模式_java_设计模式_

    在Java中,单例模式的实现通常有以下几种方式: 1. 饿汉式(Static Inner Class Singleton): 这种方法在类加载时就完成了初始化,所以是线程安全的。它通过将单例类的构造函数设置为私有,并在内部类中创建一个...

    单例模式(Singleton)的6种实现

    这是Joshua Bloch在《Effective Java》中推荐的实现方式,既简单又线程安全,同时也防止反射攻击。 ```java public enum Singleton { INSTANCE; public void whateverMethod() { } } ``` 枚举的单例在JVM...

    Java线程安全的Singleton模式:深入分析与实现

    本文将详细介绍如何在Java中创建线程安全的Singleton,包括几种常见的实现方式和最佳实践。 在Java中创建线程安全的Singleton模式是一项重要的任务,尤其是在多线程环境中。通过使用饿汉式、懒汉式与双重检查锁定、...

    Java中的五种实现方法【单例模式】

    以下将详细介绍Java中实现单例模式的五种方法。 1. 饿汉式(静态常量) 这是最简单的单例实现方式,它在类加载时就完成了初始化,所以是线程安全的。饿汉式的优点是实现简单且线程安全,但缺点是如果单例对象长时间...

    C++完美实现Singleton模式

    Singleton模式是一种常用的软件设计模式,旨在确保一个类只有一个实例,并提供一个全局访问点。这种模式在系统中经常被用于控制对共享资源(如数据库连接、日志对象等)的访问。正确地实现Singleton模式对于提高代码...

    Java面试笔记.pdf

    Java是一种广泛使用的编程语言,以其平台无关性、高效性和面向对象特性而闻名。在Java面试中,面试官通常会考察候选人的基础知识、面向对象编程理解、JVM工作原理、集合框架、多线程、异常处理、设计模式以及企业级...

    单例模式Java实现

    以上就是Java中实现单例模式的常见方法,每种方式都有其适用场景和优缺点。在实际开发中,我们需要根据项目需求选择合适的方式实现单例。同时,理解单例模式背后的原理和应用场景,有助于提升代码的设计质量。

    singleton.zip单例的几种实现demo,

    在"singleton.zip"压缩包中,我们可能会找到几种不同的Java单例实现方式的示例代码,包括饿汉式、懒汉式、反射实现以及内部类实现等。以下是对这些单例模式实现方式的详细解释: 1. **饿汉式(Eager Initialization...

    23种设计模式的Java实现

    以下是23种经典设计模式的概述及其在Java中的实现要点: 1. **单例模式(Singleton)**:确保一个类只有一个实例,并提供全局访问点。在Java中,可以使用枚举、双重检查锁定(DCL)或静态内部类等方式实现。 2. **...

Global site tag (gtag.js) - Google Analytics