`
xiandaoyan
  • 浏览: 21522 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

单例模式学习笔记

阅读更多

单例模式确保一个类只有一个实例,而且自行实例化,向整个系统提供这个实例。它的三个特点:

    A.只能有一个实例;

    B.它必须自行创建这个实例;

    C.它必须自行向整个系统提供这个实例。

单例模式分为饿汉单例模式和懒汉单例模式,它们的类图如下:

类图结构

饿汉模式类图

 

      类图结构

懒汉模式类图

饿汉单例类与懒汉单例类的区别:

    A.饿汉单例类在自己被加载时就将自己实例化,而懒汉单例类是在被调用时再实例化。

    B.饿汉单例类对资源的利用率较懒汉单例类要低。

    C.饿汉单例类在速度和响应时间较懒汉单例类要快。

使用单例模式的条件:在一个系统要求一个类只有一个实例是才应该用单例模式。

 

注意事项:

    1.在分散式系统中,单例类不一定只有一个实例,所以在分散式系统中尽量不要使用有状态单例模式;

    2.工厂模式与建造者模式可常与单例模式配合使用;

    3.不完全单例类不推荐使用;

    4.单例类与静态全局变量的优势在于:可以有较复杂的内部逻辑,可以有继承关系等;

    5.属性管理器经常可以用单例模式来实现。

          

    参考文献:《Java与模式》,阎宏,第十五章.

<!--EndFragment-->

0
0
分享到:
评论

相关推荐

    设计模式学习笔记及其模式特点总结

    代理模式学习笔记、单例模式学习笔记、命令模式、原型模式、模式特点总结。 为个人对设计模式的理解,如果有理解不一致的不要砸砖啊

    《C++20设计模式》学习笔记-第5章单例模式

    《C++20设计模式》学习笔记-第5章单例模式

    17-Java单例模式的学习笔记1

    第一次校验的时候没有同步锁,如果已经实例化了,直接返回即可,省下了同步锁要消耗的资源 第二次校验是因为第一次校验没有同步锁,所以多个线程都可能进入,同步块内二重

    C#设计模式–单例模式

     近在学设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二...

    《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析

    本文实例讲述了Javascript面向对象程序设计单例模式原理与实现方法。分享给大家供大家参考,具体如下: 1.单例模式概述 源自百度百科对于单例模式的定义: 单例模式的意思就是只有一个实例。单例模式确保某一个类...

    PHP 面向对象程序设计(oop)学习笔记(三) – 单例模式和工厂模式

    单例模式 当需要保证某个对象只能有一个实例的时候,单例模式非常有用。它把创建对象的控制权委托到一个单一的点上,任何时候应用程序都只会仅有一个实例存在。单例类不应该可以在类的外部进行实例化一个单例类应该...

    【Java设计模式】你对单例模式了解多少,一文深入探究

    我是清风~,每天学习一点点,快乐成长多一点,这些都是我的日常笔记以及总结。 目录单例模式懒汉式单例模式未初始化问题解决Double Check 双重检查方案一:不让第二步和第三步重排序-DoubleCheck方案二:基于类初始...

    23中设计模式—–单例模式

    今天听完狂神说java的单例模式,感慨万分。希望通过这篇文章跟大家一起学习。 1. 饿汉式 [1] 一个私有的构造器 [2] 一个静态变量 [3] 一个静态方法返回对象 饿汉式单例是直接使用静态变量的方式生成这个单例对象...

    尚硅谷设计模式源码笔记课件.zip

    1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种...

    PHP设计模式大全 学习笔记

    在PHP学习中,收集了一些常用的编程方法和思想,集中详细的记录了9种设计模式的设计思路和用法。比如:工厂模式,单例模式,注册模式,适配器模式,观察者模式等

    JS设计模式笔记和代码

    JavaScript常见的一些设计模式学习笔记和代码实现。包括工厂模式、单例模式、代理模式、发布订阅模式、中介者模式等等内容。

    Java设计模式教程

    该资料介绍Java各类开发模式,包含以下教程:《深入浅出设计模式(中文版)》《Java单例模式》《Java设计模式-图解-附代码》《JAVA设计模式之单例模式(完整版)》《Java学习笔记(必看经典)》《Java总复习》《单例模式》...

    PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式

    设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

    设计模式笔记(包含所有设计模式)个人总结提炼笔记

    1. 创建型模式:创建型模式关注对象的创建过程,包括简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式和单例模式。这些模式可以帮助我们更灵活地创建对象,避免直接使用new关键字来创建对象,降低...

    AInter DesignMode

    最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二...

    超经典的jdbc学习笔记

    jdbc深入细致的讲解。主要讲解了sql注入。工厂模式的设计。单例模式的设计。以及各种数据库常见sql语句在java面向对象中的编写

    Python基础学习笔记

    根据b站千峰教育所做的笔记 1.Python基础 1.1使用基础 1.2PIP使用 1.3内置函数/变量/模块 1.4代码输入基础知识细节 1.5列表 1.6元组 ...1.21单例模式 1.22模块/包 1.23正则表达式 1.24进程/线程/协程

    《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析

    工厂模式和单例模式(https://www.jb51.net/article/184230.htm)应该是设计模式中应用最多的模式了,工厂模式的定义:提供创建对象的接口(来自百度百科:http://baike.baidu.com/view/1306799.htm),意思就是根据...

Global site tag (gtag.js) - Google Analytics