美文网首页
单例模型

单例模型

作者: 维乾 | 来源:发表于2017-10-13 09:32 被阅读89次

1.什么是单例

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例

2.为什么需要单例

为了控制对象的唯一性。

对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符,也会给用户带来误解,不知道哪一个才是真实的状态。因此有时确保系统中某个对象的唯一性即一个类只能有一个实例非常重要

3.创建单例模式对象

饿汉模式(因为类属性就是一个对象,而且跟随着类加载同事创建。所以叫饿汉模式)

1.首先我们需要私有化构造函数

2.创建类的唯一实例,使用private static 修饰(为什么需要加private修改呢,因为如果没有private ,外部就能通过类.属性名的方式访问,也就创建新的对象了)

3.提供一个用于获取实例的方法,使用public static 修饰

那么也许会问为什么都需要static修改方法。

因为如果把构造函数私有化,就没办法

创建对象,接着也没办法使用非静态方法获得实例对象。

懒汉模式

懒汉模式和饿汉模式的区别

饿汉模式的特点是加载类时比较快,但是运行时获取对象的速度比较快,线程安全

懒汉模式的特点时加载类时比较快,但运行时获时取对象的速度比较慢,线程不安全

线程问题看这个博客(https://blog.csdn.net/sinat_32867867/article/details/53781512)


时间:2018.06.05  补充,懒汉模式如何进行线程安全处理。

补充,上面的代码不是线程安全 因为read是引用类型,需要加volatile 才算线程绝对安全

相关文章

  • 单例模型

    1.什么是单例 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以...

  • Java单例模型使用指导

    单例模型:设计某个类只能有一个唯一对象,通过一个全局的访问点进行访问。 单例模型特点: 单例类只能有唯一实例。 单...

  • 静态内部类实现单例模式

    使用内部类实现懒加载模型的单例

  • 设计模式——单例模式

    单例模式属于创建模型。 单例模式,是设计模式中比较简单而又最常用的模式之一。通过单例模式可以保证系统中,应用该模式...

  • 单例模式

    1. 单例模式 在面向对象的程序设计中, 单例模式是最简单的设计模式,这种类型的设计模式属于创建型模型,所谓单例....

  • MJExtension的使用注意

    单例的类调用json转模型方法时,MJExtension底层会调用单例的类的alloc init方法,然后在属性...

  • iOS设计模式

    MVC Model:模型 View:视图 Controller:控制器 单例 单例使用懒加载方式在第一次实例时创建...

  • iOS开发 - 设计模式

    MVC Model:模型 View:视图 Controller:控制器 单例 单例使用懒加载方式在第一次实例时创建...

  • 23种设计模型初学(单例模型)

    什么是单例模型? 单例模型:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 大概意思就是:在你调用一个类的...

  • 设计模式概要

    创建型模式:工厂模型,抽象工厂模型,建造模型,原型模型,单例模型,结构型模式:适配器,桥,组合模型,行为型设计模式...

网友评论

      本文标题:单例模型

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