单例(Singleton)设计模式
1.定义:
类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例 ,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为 private,这样,就不能用 new 操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。
2.单例设计模式的饿汉式
public class SingletonTest1 {
public static void main(String[] args) {Bank b1=Bank.getInstance();Bank b2=Bank.getInstance();System.out.println(b1==b2);
}
}
//饿汉式
class Bank{//1.私有化类的构造器private Bank(){}//2.内部创建类的对象且为静态的private static Bank instance=new Bank();//3.提供公共的静态方法,返回类的对象public static Bank getInstance(){return instance;}
}
3.单例设计模式的懒汉式
public class SingeltonTest2 {
public static void main(String[] args) {Order o1=Order.getInstance();Order o2=Order.getInstance();System.out.println(o1==o2);
}
}
//懒汉式
class Order{//1.私有化类的构造器private Order(){}//2.声明当前类对象,没有初始化private static Order instance=null;//3.声明public、static的返回当前类的对象的方法
public static Order getInstance(){//方式一:效率较差
// synchronized (Order.class) {
// if(instance==null){
// instance=new Order();
// }
// return instance;
// }//方式二:效率稍高if(instance==null){synchronized (Order.class){if(instance==null){instance=new Order();}}}return instance;}}
单例(Singleton)设计模式相关推荐
- 单例 (Singleton)设计模式
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法.如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构 ...
- 单例(Singleton)设计模式应用场景
网站的计数器,一般也是单例模式实现,否则难以同步. 应用程序的日志应用,一般都使用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加. 数据库连接池的 ...
- 设计模式学习笔记——单例(Singleton)模式
设计模式学习笔记--单例(Singleton)模式 @(设计模式)[设计模式, 单例模式, Singleton, 懒汉式, 饿汉式] 设计模式学习笔记单例Singleton模式 基本介绍 单例案例 类 ...
- Ruby设计模式透析之 —— 单例(Singleton)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8868758 此为Java设计模式透析的拷贝版,专门为Ruby爱好者提供的,不熟悉R ...
- 设计模式--单例(Singleton)模式
模式意图 保证一个类只用一个实例,并且提供一个全局访问点 类图 应用场景 1.需要更严格地控制全局变量时,使用单例模式: 2.重量级的对象如线程池对象,数据库连接池对象,不需要多个实例的对象如工具类等 ...
- 深入浅出单实例Singleton设计模式
深入浅出单实例Singleton设计模式 陈皓 前序 单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了.这个设计模式主要目的是想在整 ...
- 跨应用程序域(AppDomain)的单例(Singleton)实现
转载自: 跨应用程序域(AppDomain)的单例(Singleton)实现 - CorePlex代码库 - CorePlex官方网站,Visual Studio插件,代码大全,代码仓库,代码整理,分 ...
- Objective-C设计模式——单例Singleton(对象创建)
单例 和其它语言的单例产不多,可以说是最简单的一种设计模式了.但是有几个点需要注意下,单例就是一个类只有一个实例. 所以我们要想办法阻止该类产生别的实例,一般语言中都会将构造函数写为private.但 ...
- java设计模式 单例_java设计模式一(单例模式singleton)
1 概述 如果要保证系统里一个类最多只能存在一个实例时,我们就需要单例模式.这种情况在我们应用中经常碰到,例如缓存池.数据库连接池.线程池.一些应用服务实例等.在多线程环境中为了保证实例的唯一性其实并 ...
- Java设计模式透析之 —— 单例(Singleton)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8860649 写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上 ...
最新文章
- linux-RPM安装
- Yarn 问题发现与解决
- Markdown-VScode打造Markdown编辑器
- 前端学习(3235):react生命周期2
- VB:将短文件名格式转成长文件名
- eclipse中pom文件的查看
- FireMonkey TListView 使用 LiveBindings 绑定 TObjectList
- 计算机外设原理,计算机外设原理是什么
- 2011新版车主宝典改进亲体验(Android版)
- 【C++设计模式】Singleton 单例设计模式与线程安全
- OSChina 周四乱弹 ——一周五天在诈尸
- linux文件目录基本操作实验结论,实验 Linux文件和目录操作
- nginx 配置https 代理http接口
- 计算之魂算法复杂度的相关概念
- Altera DDR3调试记录
- 算法基础--快慢指针
- 《劳动合同法》解读|新劳动合同法解析列表
- BUUCTF 静静听这么好听的歌(python脚本matlab脚本)
- CocosCreator系列——用安卓原生实现录音与播放功能
- Android应用图标尺寸以及drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi)
热门文章
- 【机器学习】AI去马赛克工具(图像修复)
- 帝国cms框架的Webshell
- HTML-定位网页元素
- 阿里巴巴矢量图库开源http://www.iconfont.cn/collections/detail?cid=29
- iOS7—Day by day—Day16:Decoding QR Codes With AVFoundation
- An invalid domain [] was specified for this cookie问题解决
- 分段函数的期望和方差_2020考研数学一大纲
- matlab的替代品,matlab的开源替代品--octave
- 集合的基本运算及文氏图
- 爽一把手写Bundle Adjustment