文档章节

设计模式学习之-单例模式

wheat235
 wheat235
发布于 2015/11/05 12:01
字数 288
阅读 25
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

    单例(Singleton)模式:单例模式确保某一个类只有一个实例,而且该类只能是自己实例化自己并向其他类公开这个实例的对象创建模式,采用单例模式的类要满足以下三点:

  • 确保某一个类只有一个实例(构造方法私有化

  • 单例类必须自己创建自己的唯一实例

  • 必须提供一个外部可以获取这个类具体实例的方法该方法必须是静态方法

  

    在单例模式中又分为两种写法:

    第一种:懒汉模式

public class SingletonLazy {
    //构造方法私有化
    private SingletonLazy(){}
    private static SingletonLazy Singleton = null;  
    //静态工厂方法,在第一次被调用时才将自己实例化  
    public static SingletonLazy getInstance() {  
         if (Singleton == null) {    
             Singleton = new SingletonLazy();  
         }    
        return Singleton;  
    }  
}

    第二种:饿汉模式

public class SingletonHungry {
    //构造方法私有化
    private SingletonHungry(){}
    //在类加载的时候就实例化一个自己的对象
    private static final SingletonHungry Singleton = new SingletonHungry(); 
    //每次调用该静态工厂方法返回该实例
    public static SingletonHungry getInstance(){ 
        return Singleton ; 
    } 
}

演示代码地址

wheat235
粉丝 2
博文 30
码字总数 12064
作品 0
深圳
程序员
私信 提问
加载中
请先登录后再评论。
Nutch学习笔记4-Nutch 1.7 的 索引篇 ElasticSearch

上一篇讲解了爬取和分析的流程,很重要的收获就是: 解析过程中,会根据页面的ContentType获得一系列的注册解析器, 依次调用每个解析器,当其中一个解析成功后就返回,否则继续执行下一个解...

强子哥哥
2014/06/26
712
0
TBB学习:并行循环

http://www.cppprog.com/2009/0325/92.html

Waiting4you
2009/05/12
672
0
SmartGWT学习整理 2、理解核心中的核心DataSource

SmartGWT学习整理 2、理解核心中的核心DataSource DataSource之所以重要,是因为它负责所有的与服务器的数据交互,几乎所有的控件都离不开它。 可以这样说,理解了DataSource就掌握了SmartGW...

st97
2010/11/16
2K
2
NGUI学习基于NGUI的序列帧动画制作

首先导入NGUI包,由于我是在NGUI的基础上进行了简单的扩展。所以还要额外加上几个需要用到的类。我就从新把自己新加的方法放在NGUI中打包。 导入NGUI包以后可以看到有这一个菜单。 创建一个序...

orientalfashion
2013/05/28
5.2K
1
MyBatis学习手记(二)MyBatis缓存机制

MyBatis学习手记二 前:MyBatis官方学习(中文)文档 http://mybatis.github.io/mybatis-3/zh/index.html 一,首先,要使用MyBatis必须使用官方提供的MyBatis的JAR包 链接:https://github.com...

xiaolei123
2015/09/15
2K
4

没有更多内容

加载失败,请刷新页面

加载更多

代理服务器和反向代理服务器之间有什么区别? - What's the difference between proxy server and reverse proxy server?

问题: 代理服务器和反向代理服务器有什么区别? 解决方案: 参考一: https://stackoom.com/question/wRc/代理服务器和反向代理服务器之间有什么区别 参考二: https://oldbug.net/q/wRc/W...

技术盛宴
今天
16
0
第八讲:配置外界可以访问虚拟机里面的HDFS

本节通过配置实现外界访问虚拟机Centos6.4里面的HDFS。为后续的java读写HDFS做准备 步骤有: 1、修改主机Windos7的网络配置 2、修改虚拟机Centos6.4里面的网络配置 3、修改虚拟机Centos6.4里...

刘日辉
今天
26
0
OSChina 周四乱弹 —— 不劳而获的饭好吃么?好吃!非常好吃!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《世界上不存在的歌 (2020重唱版)》- 陈奕迅 《世界上不存在的歌 (2020重唱版)》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
今天
31
3
从 GPU、TPU,到 Web 端、移动端,深度学习框架部署训练开始变简单

本文作者:o****0 早些时候的统计显示,今年3月,深度学习框架集中爆发。5月,有人发布可以直接在 iphone11上训练神经网络的开源项目。日前,百度开源国内首个可直接运行在 Web 端的深度学习...

百度开发者中心
昨天
16
0
如何从Git存储库中删除文件? - How can I delete a file from a Git repository?

问题: I have added a file named "file1.txt" to a Git repository. 我已将名为"file1.txt"的文件添加到Git存储库中。 After that, I committed it, added a couple of directories called......

富含淀粉
今天
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部