• 【设计模式】Java之单例设计模式


    1.单例设计模式:一个类只能有一个对象

    1.1 创建单例类的步骤:

        1.将构造方法私有化

        2.创建私有的静态成员变量

        3.共有的静态成员方法,提供当前的唯一对象

    1.1 创建单例的两种方式:

          1.饿汉式 -- 一开始执行时就先给单例类对象赋值

    //方式一:饿汉式  一开始执行,就先给单例类对象赋值
    class SingleInstance{
    	//在单例类的内部创建了一个私有化对象
    	private final static SingleInstance singleInstance = new SingleInstance();
    	
    	//构造方法私有化
    	private SingleInstance() {
    				
    	}
    	//建立一个public方法,将单例类对象提供出去
    	public static SingleInstance getSingleInstance() {
    		return singleInstance;
    	}
    
    	//单例类的功能区
    
    }

        2. 懒汉式 -- 一开始为null,什么时候使用,就什么时候赋值

            懒汉式我们这里讨论考虑线程安全的情况。需要用synchronized关键字进行加锁,保证线程安全。

    //懒汉式 
    class SingleInstance{
    	private static SingleInstance instance = null;
    	private SingleInstance() {
    		
    	}
    	public static SingleInstance getInstance() {
    		if(instance == null ) {//编写最外层的if,是为尽量少的判断线程同步,提高效率
    			synchronized (SingleInstance.class) {//获取当前类的字节码充当同步代码块的锁,让多个线程之间互斥  
    				if(instance == null) {
    					instance = new SingleInstance();
    				}
    			}
    		}
    		return instance;
    	}
    	//工作位置
    }





  • 相关阅读:
    spring事件广播
    浏览器中文乱码,组合项目中部分模块乱码
    SpringSecurity加密Salt
    Linux服务器Java输出文件中文乱码
    重定向监听端口并持久化路由配置
    Mac下文件编码转换
    Shell之内容匹配与格式输出
    [leetcode]Scramble String
    [leetcode]Decode Ways
    [leetcode]Valid Palindrome
  • 原文地址:https://www.cnblogs.com/snova/p/9195706.html
Copyright © 2020-2023  润新知