zoukankan      html  css  js  c++  java
  • 设计模式1——单例

    单例

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

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

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

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

    Rust

    单例的作用?

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

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

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

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

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

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

    总结:

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

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

  • 相关阅读:
    对于Spring使用注解的一点总结
    2014-01-12
    Struts2补充a
    2014从Struts2开始
    总结:XHTML中链接CSS的四种方法(笔记)
    XHTML
    我Web前端开发的开端
    踏上前端路
    调取手机相册和拍照功能js
    mac常用系统指令和终端指令总结
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/3824774.html
Copyright © 2011-2022 走看看