• android 单例模式


    单例模式特点:

    1、一个类只能有一个实例

    2、自己创建这个实例

    3、整个系统都要使用这个实例

    单例模式的形式:

    1、饿汉式单例类

    public class Singleton {

    private Singleton(){}

    //在自己内部定义自己一个实例,是不是很奇怪?

    //注意这是private 只供内部调用

    private static Singleton instance = new Singleton();

    //这里提供了一个供外部访问本class的静态方法,可以直接访问

    public static Singleton getInstance() {

    return instance;

    }

    }

    2、懒汉式单例类

    private static Singleton instance = null;

    public static synchronized Singleton getInstance() {

    //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次

    //使用时生成实例,提高了效率!

    if (instance==null)

    instance=new Singleton();

    return instance; }

    }

    第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。

    注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。
    一般来说第一种比较安全

    3、比较常使用的是:

    public class Singleton {

    private volatile static Singleton singleton;

    private Singleton(){}

    public static Singleton getInstance(){

    if(singleton==null){

    synchronized(Singleton.class){

    if(singleton==null){

    singleton=new Singleton();

    }

    }

    还可以参考一下android的Activity加载模式:

    1、singleTop

    2、singleTask

    3、singleInstance

  • 相关阅读:
    比特币脚本及交易分析
    分析比特币网络:一种去中心化、点对点的网络架构
    比特币如何挖矿(挖矿原理)-工作量证明
    比特币所有权及隐私问题-非对称加密应用
    区块链记账原理
    用Python从零开始创建区块链
    基础语法-算术运算符
    基础语法-数据类型转换
    基础语法-数据类型介绍及使用
    基础语法-变量介绍
  • 原文地址:https://www.cnblogs.com/xulibing/p/5268342.html
Copyright © 2020-2023  润新知