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

    ​​​​​​​

  • 相关阅读:
    CodeSmith入门教程
    AJAX调用实例
    药品监控增加表结构
    典型SQL 语句总结
    CRM中常用代码
    win2000sever+IIS5不能下载exe文件处理方法
    常用的文件对应的MIME类型
    数据库范式1NF 2NF 3NF BCNF
    多线程编程中如何更改UI值
    NHibernate学习笔记(2)—关系映射
  • 原文地址:https://www.cnblogs.com/xueSpring/p/12750012.html
Copyright © 2011-2022 走看看