读书笔记设计模式之-单例模式

创建型:Singleton(单例模式)

  单例模式,或者称为元件模式。一般来说,在所有模式中,属于最小代码实现的翘楚。刚找工作那会,经常在笔试题遇到写出你知道的设计模式,基本上单例是必写的,不为啥,至少占地面积小。

  一般我们有这两种实现:

package top.gabin.oa.web.design.singleton;

/**
 * 简单单例模式示例
 * @author linjiabin on  16/5/4
 */
public class SimpleSingleton {
    private static Object singleton = new Object();
    private static Object singleton2;

    public static Object getSingleton() {
        return singleton;
    }

    public static Object getSingleton2() {
        if (singleton2 == null) {
            singleton2 = new Object();
        }
        return singleton2;
    }

}

  静态变量在整个应用中只会持有一份对象,而全局访问点也只有一个,这就是我们一般定义的单例了:保证只有一个对象,一般也只有一个全局访问点。至于初始化的时间,要看创建对象的资源损耗和使用频率。一般使用频率高,损耗低的会直接初始化。

  当然看起来简单的东西并不见得容易维护,其实单例模式往往还要解决并发访问的问题,这不在讨论范围,并且我也对并发没有那么深的见解。

时间: 2025-01-05 23:14:43

读书笔记设计模式之-单例模式的相关文章

大话设计模式读书笔记--设计模式总结

前言 大话设计模式看了两遍,之前看过一遍,理解的不深刻, 这次用了一个月多点的时间再次温习,利用下班后的时间回来学习,把学习心得记录下来,加深了对面向对象的理解 之前是看到一个需求搞清楚业务流程之后立刻就去做了,很少从设计层面的角度考虑,现在在开发程序时,开始有了设计的思想,也有了达到可维护,可复用,可扩展目的具体的实现方法 每当看到经过优化代码的效果时,就想起一句话:精彩的代码是如何想出来的,比看到精彩的代码更加令人兴奋 下面是用自己的话进行的总结,以便加深记忆和理解 创建型 抽象工厂 定义:

读书笔记 - 设计模式(Head First)

设计模式让你和其他开发人员之间有共享的词汇,设计模式可以把你的思考架构的层次提高到模式层面,而不是停留在琐碎的对象上. 设计原则: 封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码放在一起. 多用组合,少用继承:使用者建立系统具有很大的弹性,不仅可将算法族封装成类,更可以在运行时动态的改变行为,只要组合的行为对象符合正确的接口标准即可. 针对接口编程,不针对实现编程:这里所说的接口并不是单单说的接口,而是指超类型,可以理解成 “针对超类型编程”,这点的关键在于多态

大话设计模式读书笔记2——单例模式

单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案. 我们来看一下单例模式下的饿汉模式代码: /// <summary> /// 饿汉模式 /// </summary> public class Singleton { //私有的构造器 private Singleton() {

【游戏设计模式】之四 《游戏编程模式》读书笔记:全书内容梗概总结

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/53240330 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 本文的Github版本:QianMo/Reading-Notes/<游戏编程模式>读书笔记 这是一篇超过万字读书笔记,总结了<游戏编程模式>一书中所有章节与内容的知识梗概. 我们知道,游戏行业其实一直很缺一本系

《Android源码设计模式解析》读书笔记——Android中你应该知道的设计模式

断断续续的,<Android源码设计模式解析>也看了一遍,书中提到了很多的设计模式,但是有部分在开发中见到的几率很小,所以掌握不了也没有太大影响. 我觉得这本书的最大价值有两点,一个是从设计模式的角度去理解Android源码,结合着日常开发中的常用类,对设计模式的理解会更加的深刻:另外一个好处就是了解常用模式,再看其他人写的代码的时候,更容易理解代码思路.下面是我的读书笔记和一些思考,设计模式只整理我认为重要的部分. 建造者模式 建造者模式最明显的标志就是Build类,而在Android中最常

设计模式读书笔记:SINGLETON(单件模式)

意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点 类图: 注意: 1.静态成员变量及静态成员方法 2.使用惰性初始化,它的返回值直到被第一次访问时才创建和保存 3.构造器是受保护的,试图直接实例化Singleton将得到一个编译时的错误信息 实现: class Singleton { public: virtual ~Singleton() {} static Singleton *getInstance(void) { if (_instance == 0) _instance =

【读书笔记】大话设计模式 2【2014-7-31】

这本书慢慢的诚意让我没有任何理由不把它阅读完.学校有软件工程这门选修课,但是我感觉看了这本书比选那门课要好得多.里面的故事虽然没有跌宕起伏,但是生活中淡淡的趣味让我读完之后仍然有一种想看续集的冲动.希望学到的这些在我以后的道路上扮演重要的角色! 按照最后一章模式总结的顺序来总结一下: 1.创建型模式 抽象工厂 建造者模式(和工厂的区别:一个在于产生,一个在于组装)(和组合更是两码事了,组合是树形的,不要望文生义~) 工厂方法 原型模式 单例模式(只允许一个stastic存在,把构造方法封死,然后

【读书笔记】设计模式第6章:行为型模式2

本文主要分析了中介者模式.观察者模式.备忘录模式.访问者模式.状态模式.解释器模式,介绍它们的定义.优缺点.使用场景,以及实例代码.为了深刻地理解设计模式,最重要的还是动手编写代码. 我参照书中的例程重新构想了一些更加生动.易于理解的例子,希望大家喜欢. 代码可以通过以下链接进行浏览: http://git.oschina.net/caipeichao/java-design-pattern 这些代码都经过编译运行,保证没有错误. 中介者模式 定义 也叫调停者模式 用一个中介对象来封装一系列同事

《Javascript 设计模式》-读书笔记

第七章   设计模式类别 一.设计模式有三种类别 1.创建型模式:专注于处理对象机制.包括:构造器.工厂.抽象.原型.单例.生成器 2.结构型模式:用于找出在不同对象之间建立关系密切的简单方法. 包括:装饰者.外观.享元.适配器.代理 3.行为模式:用于改善或简化系统中不同对象之间的通信.包括:迭代器.中介者.观察者.访问者 第八章   设计模式分类 <Javascript 设计模式>-读书笔记,布布扣,bubuko.com