zoukankan      html  css  js  c++  java
  • 设计模式之单例模式(Singleton Pattern),太简单了

    基本定义

    单例模式就是确保某一个类只有一个实例,并且提供一个全局访问点。单例模式有如下几个特点:

    • 它只有一个实例。
    • 它必须要自行实例化。
    • 它必须自行向整个系统提供访问点。

    代码实现

    饿汉式

    直接初始化静态变量。这样就保证了线程安全。

    public class Singleton {
    private static Singleton singleton = new Singleton();
    private Singleton(){
    }
    public static Singleton getInstance(){
    return singleton;
    }
    }

    懒汉式

    按需加载. 配合synchronized来处理。也就是说将getInstance()方法变成同步方法

    public class LazySingleton {
    private static volatile LazySingleton lazySingleton;
    private LazySingleton(){
    }
    public static LazySingleton getInstance(){
    if(lazySingleton == null){
    synchronized(LazySingleton.class){
    lazySingleton = new LazySingleton();
    }
    }
    return lazySingleton;
    }
    }

    优点

    节约了系统资源。由于系统中只存在一个实例对象,对与一些需要频繁创建和销毁对象的系统而言,单例模式无疑节约了系统资源和提高了系统的性能。
    因为单例类封装了它的唯一实例,所以它可以严格控制客户怎样以及何时访问它。
    缺点

    由于单例模式中没有抽象层,因此单例类的扩展有很大的困难。
    JDK源码

    懒汉式

    java.lang.Runtim

    饿汉式

    java.lang.System

    ​​​​​​​

  • 相关阅读:
    poj 3767 I Wanna Go Home (有限制的最短路)
    gcd及扩展gcd
    2012 多校联合比赛第二场
    大整数 问题
    从数据流动看数据结构
    vc/vs常用快捷键
    函数重载
    mysql相关
    xml理解
    编译相关
  • 原文地址:https://www.cnblogs.com/xueSpring/p/12750012.html
Copyright © 2011-2022 走看看