zoukankan      html  css  js  c++  java
  • 单例模式demo

    package com.test;


    /**
    *
    * @author Administrator
    *我的发现:调用这个的时候,不能直接实例化了;需要=null;然后get; 这样安全些;
    *然后仔细找了下单例模式的解释,发现是这样的;单例模式要线程安全,有单独且唯一的一个例子;
    *所以重新了构造方法,改成了安全的private,然后加了一个例子,setget方法(set方法干掉了、),
    *这里是饿汉式单例模式,在类初始化的时候就新实例化了一个唯一的实例了;
    *
    *注: 单例模式有以下特点:
      1、单例类只能有一个实例。
      2、单例类必须自己创建自己的唯一实例。
      3、单例类必须给所有其他对象提供这一实例。

    单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例(略)。
    */
    public class SingletonClass {
    //饿汉式:
    /*
    private SingletonClass() {}

    private static final SingletonClass instance = new SingletonClass();

    public static SingletonClass getInstance() {
    return instance;
    }
    */
    //懒汉式:
    /*
    private SingletonClass() {}

    private static SingletonClass instance = null;

    public static SingletonClass getInstance() {
    instance = new SingletonClass();
    return instance;
    }
    */
    //懒汉式在getInstance方法上+同步:
    /*
    private SingletonClass() {}

    private static SingletonClass instance = null;

    public static SingletonClass getInstance() {
    if(instance==null){
    instance = new SingletonClass();
    }
    return instance;
    }
    */
    //懒汉式+双重检查锁定
    /*
    private SingletonClass() {}

    private static SingletonClass instance = null;

    public static SingletonClass getInstance() {
    if(instance==null)
    synchronized (SingletonClass.class) {
    if(instance==null){
    instance = new SingletonClass();
    }
    }
    return instance;
    }
    */
    //静态内部类
    //(既实现了线程安全,又避免了同步带来的性能影响)
    private static class LazyHolder {
    private static final SingletonClass INSTANCE = new SingletonClass();
    }

    private SingletonClass() {
    }

    public static final SingletonClass getInstance() {
    return LazyHolder.INSTANCE;
    }

    }

  • 相关阅读:
    在win7中关闭UAC(用户存取控制)
    如何卸载那些没有出现在“add/remove program”中的程序?
    Win7 打开显示文件后缀
    有关windows 自动登录的registry Key
    原来如此 新学一招
    file's owner以及outlet与连线的理解
    学习笔记:正确使用PresentModalViewController
    学习笔记:UIViewController生命周期
    IPhone之自定义弹出窗口
    学习笔记:iOS 视图控制器(UIViewController)剖析
  • 原文地址:https://www.cnblogs.com/signoffrozen/p/7131723.html
Copyright © 2011-2022 走看看