`

四中方式实现单例模式

阅读更多

一:饿汉式单例模式

package com.zkn.newlearn.gof.singleton;

/**
 *
 * 饿汉式单例模式
 * @author zkn
 *
 */

public class SingletonTest01{

	/**
	 * 加载类时,立即加载对象,是没有延迟的。是天然的线程安全的
	 */
	private static SingletonTest01 singleton = new SingletonTest01();
	
	/**
	 *  构造器私有化
	 */
	private SingletonTest01() {
		
	}
	/**
	 * 返回这个对象
	 */
	public static SingletonTest01 getInstance(){
		
		return singleton;
	}
	
	public void test(){
		System.out.println("我是饿汉式单例模式");
	}
	
}


二:懒汉式单例模式

package com.zkn.newlearn.gof.singleton;

/**
 * 
 * @author zkn
 *
 */

public class SingletonTest02 {

	private static SingletonTest02 singleton;
	
	/**
	 * 构造器私有化
	 */
	private SingletonTest02() {
		
	}

	public static synchronized SingletonTest02 getInstance(){
		
		if(singleton == null){
			singleton = new SingletonTest02();
		}
		return singleton;
	}
	
	public void test(){
		System.out.println("我是懒汉是单例模式");
	}
}


三:静态内部类

package com.zkn.newlearn.gof.singleton;

/**
 * 静态内部类  线程安全 延迟加载 调用效率高
 * @author zkn
 *
 */


public class SingletonTest04 {

	private static class SingletonClassInstance{
		private static final SingletonTest04 single = new SingletonTest04(); 
	}
	
	private SingletonTest04() {
		
	}

	public static SingletonTest04 getInstance() {
		
		return SingletonClassInstance.single;
	}
	
}


四:枚举(单元素)

package com.zkn.newlearn.gof.singleton;

/**
 * 
 * 枚举实现单例 避免反射漏洞 jvm层面是安全的
 * @author zkn
 *
 */

public enum SingletonTest05 {

	/**
	 * 枚举元素本身就是单例
	 */
	INSTANCE;
}

 

分享到:
评论

相关推荐

    软件设计模式实验

    常见的创建型设计模式有六种,即简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式和单例模式。通过使用Visio或Rose画UML图,我们可以更好地理解和比较这些模式的特点和适用场合。 在实验报告中,...

    ssd3实验4代码

    - 单例模式:确保一个类只有一个实例,并提供全局访问点,可能在实验中用于控制共享资源。 - 工厂模式:创建对象的抽象,提供一个创建对象的接口,而不用指定具体类,便于后期扩展。 3. **异常处理**: - Java的...

    CS202-项目四

    8. **设计模式**:为了编写可维护和可扩展的代码,学生可能需要应用一些常见的设计模式,如工厂模式、单例模式、观察者模式等。 9. **单元测试**:良好的编程实践要求代码必须通过单元测试。JUnit是Java常用的单元...

    Web前端开发中级实操考试评分细则2

    `表示使用单例模式获取数据库连接池,`$connPool->executeSql($sql,$param)`用于执行SQL语句,其中`$param`是参数化的查询值。 7. **控制器和路由**:在试题四中,`UserController@main`可能是Laravel框架中的一个...

    BILD-IT-Tic-Tac-Toe-AND-Game-Connect-Four

    10. **代码结构与设计模式**:良好的代码组织结构和设计模式(如单例模式、工厂模式)可以使代码更易于理解和维护。 通过这个项目,开发者不仅可以学习到基本的Java编程技巧,还能深入理解面向对象编程的思想,并...

    JAVA核心知识点整理(有效)

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................

Global site tag (gtag.js) - Google Analytics