zoukankan      html  css  js  c++  java
  • java设计模式--单例模式

    所谓单例模式就是只能有一个实例。如何只有一个实例呢?就是不能创建更多的实例,所以构造函数一般私有化,不能new一个新的对象,提供一个访问方法,只能通过这个访问点获取到唯一的对象实例。

    常见实现方式有两种:懒汉模式和饿汉模式。

    懒汉模式:就是很懒咯,不是一开始就装载好,而是你要用的时候我再创建。

    eg:

    /**
     * 单例模式:懒汉模式
     * 
     * @author yannic
     *
     */
    public class SingleInstance {
        //volatile修饰,禁止指令重拍
        private static volatile SingleInstance singleInstance;
    
        // 私有化构造器,防止外部的类调用创建新对象
        private SingleInstance() {
        }
    
        public static SingleInstance getInstance() {
            //double-check:双重检查
            if (singleInstance == null) {
                synchronized (SingleInstance.class) {
                    if (singleInstance == null) {
                        singleInstance = new SingleInstance();
                    }
                }
            }
            return singleInstance;
        }
    
    }

    饿汉模式:就是很急迫嘛,一开始类装载的时候就创建好这个唯一的实例对象了。

    /**
     * 单例模式:饿汉模式
     * 
     * @author yannic
     *
     */
    public class Singleton {
        //类加载时就初始化
        private static final Singleton singleton = new Singleton();
        //私有化构造器
        private Singleton() {
        }
    
        public static Singleton getInstance() {
            return singleton;
        }
    }

    还有一些其他实现方法啦,一个就是枚举方法,我不太会用,就不写啦。

  • 相关阅读:
    多线程的同步锁和死锁
    多线程同步
    oracle11g导出表时会发现少表,空表导不出解决方案
    GET和POST两种基本请求方法的区别
    数据库优化
    JavaScript中的基本数据类型
    Spring Data Jpa简单了解
    单例和多例详解
    jsp九大内置对象
    JavaEE 前后端分离以及优缺点
  • 原文地址:https://www.cnblogs.com/ITyannic/p/10705225.html
Copyright © 2011-2022 走看看