• 设计模式1——单例


    单例

    http://www.iteye.com/topic/537563

    3、单例模式有以下特点: 

    • 单例类只能有一个实例; 
    • 单例类必须自己创建自己的唯一的实例; 
    • 单例类必须给所有其他对象提供这一实例;
    • 私有构造方法,避免外部创建实例;
    • 私有静态实例;
    • 静态工厂方法,返回此单例类唯一的实例。

    —————— 私有静态实例——java 语言机制的static保障了内存(具体来说是方法内存区)中只有一个引用。。! 这个非常关键!!!

    Rust

    单例的作用?

    某个创建很耗资源、时间的类,

    整个项目运行中只能有一个实例存在的类

    同时应用场景有单线程、多线程

    如果是多线程,还要注意其线程安全的问题。

    饿汉式的实现方式虽然貌似开销比较大,但是不会出现线程安全的问题,也是解决线程安全的单例实现的有效方式。 —— 使用static关键字修饰的变量只有在第一次使用的时候才会被初始化,而且一个类里面static的成员变量只会有一份,这样就保证了无论多少个线程同时访问,所拿到的Resource对象都是同一个

    如果是懒汉式模式—— 则需要考虑线程安全,加synchronized 或其他。。

    总结:

    单线程的单例模式很简单,注意那么几个点即可,一般谁都会写。

    多线程情况下,相对单线程要复杂很多,就要紧紧的盯住那个getInstance的静态方法了!

  • 相关阅读:
    八、分组
    七、select使用
    六、SQL基础应用
    五、修改MySQL密码
    side Effect
    js函数式编程
    React生命周期
    Portals
    git使用技巧
    函数式编程
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/3824774.html
Copyright © 2020-2023  润新知