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

    应用场景

    如果要保证系统里一个类最多只能存在一个实例时,我们就需要单例模式。这种情况在应用中经常碰到,例如缓存池、数据库连接池、线程池、一些应用服务实例等。在多线程环境中,为了保证实例的唯一性其实并不简单。

    最简单的单例

    源代码

    Singleton.java

    package pattern.part2.chapter3;
    
    public class Singleton {
        private static Singleton instance = new Singleton();
    
        // other useful fields...
    
        private Singleton() {
        }
    
        public static Singleton getInstance() {
            return instance;
        }
    
        // other useful methods...
    }

    代码注解

    Singleton类只有一个构造方法,它是被private修饰的,客户对象无法创建该类实例。
    我们为此单例实现的全局访问点是public static Singleton getInstance()方法。
    注意:instance变量是私有的,外界无法访问。

    此实现是线程安全的,当多个线程同时去访问该类的getInstance()方法时,不会初始化多个不同的对象,这是因为,JVM(Java Virtual Machine)在加载此类时,对于static属性的初始化只能由一个线程执行且仅一次。

  • 相关阅读:
    九个令人兴奋的新功能将与Java 9 展示两点
    自学前端开发 新版css时钟效果图
    自学前端,你要的学习资料到了~~~~~~
    Angularjs中ng-repeat与移动端滑动插件iScroll的冲突
    计蒜客学习记录
    明明的随机数
    模板题
    泉州一中复赛模拟
    快速幂模板
    NOIP2013
  • 原文地址:https://www.cnblogs.com/ctoroad/p/5332054.html
Copyright © 2011-2022 走看看