美文网首页
为什么要使用单例

为什么要使用单例

作者: 茴香豆的第五种写法 | 来源:发表于2017-01-15 17:47 被阅读0次

什么是单例:

一个类在整个系统中只有一个实例,而且这个实例在类的内部由private构造的,外部不能直接调用其构造方法,只能获取它的实例.

单例模式的优点:

在内存中只有一个实例对象,节省内存空间.避免重复的创建和销毁对象,可以提高性能,避免对多重资源的重复占用,可以全局进行访问.

单例模式的使用场景:

需要频繁的实例化和销毁的对象.有状态的工具类对象,频繁访问数据库或文件对象.

eg:(静态内部类)

public class SingleInstance{

    private static class InstanceHolder{

           public static final SingleInstance instance=new SingleInstance();

     }

     public static SingleInstance getInstance(){

            return InstanceHolder.instance;

   }

}

eg:(懒汉单列模式)

//懒汉单例模式,在第一次调用时候实例化自己

public class Singleton {

private Singleton() {

}

private static Singleton single = null;

// 静态工厂方法

public static Singleton getInstance() {

if (single == null) {

single = new Singleton();

}

return single;

}

}

加同步锁可以变线程安全的单例

public static synchronized Singleton getInstance(){

if (single == null) {

single = new Singleton();

}

return single;

}

eg:饿汉单例模式

//饿汉式单例类.在类初始化时,已经自行实例化

public class Singleton1 {

private Singleton1() {}

private static final Singleton1 single = new Singleton1();

//静态工厂方法

public static Singleton1 getInstance() {

return single;

}

}

饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。

外部获取instance实例,而不是new一个对象.

Sgingleton  obj=Singleton.getInstance();

相关文章

  • 面试题总结

    1.单例设计模式的实现,为什么使用单例模式?? static MusicManager ...

  • 单例模式

    1. 什么是单例模式? 创建单例类的方法叫单例模式. 单例类, 就是只能产生一个对象的类. 2. 为什么使用单例模...

  • 设计模式-创建型-单例模式

    单例模式: 为什么使用单例模式?节约内存开销,提高效率(性能),提高资源使用率。单例模式的特点: 构造方法私有化定...

  • Android开发教程——设计模式之单例模式

    这篇文章将解决你以下几个疑问: 为什么要使用单例? 单例有哪些写法? 单例存在哪些问题? 单例与静态类的区别? 有...

  • 单例模式

    本文章采用循序渐进的方式对单例模式进行演化实现。 什么是单例模式,为什么要使用单例模式? 单例模式就是只允许创建一...

  • 设计模式--单例模式

    单例模式概述 单例模式实现方式 为什么要使用单例模式 单例模式实现方式 饿汉式 类加载后就会将对象加载到内存中,保...

  • 单例模式:深入理解单例模式——只有一个实例

    目录: 文章目录 前言 一 单例模式简介 1.1 定义 1.2 为什么要用单例模式呢? 1.3 为什么不使用全局变...

  • flutter:单例

    flutter单例 单例使用

  • 41 - 单例模式 - 恶汉 or 懒汉?

    为什么要使用单例? 单例设计模式(Singleton Design Pattern)理解起来非常简单。一个类只允许...

  • 项目中单例模式的使用

    面向接口编程为什么使用单例模式对于为什么使用单例模式还是很模糊,先记下来自己的理解。比如重复点击某个按钮需要进入某...

网友评论

      本文标题:为什么要使用单例

      本文链接:https://www.haomeiwen.com/subject/xczrbttx.html