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)设计模式相关推荐

  1. 单例 (Singleton)设计模式

    所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法.如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构 ...

  2. 单例(Singleton)设计模式应用场景

    网站的计数器,一般也是单例模式实现,否则难以同步. 应用程序的日志应用,一般都使用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加. 数据库连接池的 ...

  3. 设计模式学习笔记——单例(Singleton)模式

    设计模式学习笔记--单例(Singleton)模式 @(设计模式)[设计模式, 单例模式, Singleton, 懒汉式, 饿汉式] 设计模式学习笔记单例Singleton模式 基本介绍 单例案例 类 ...

  4. Ruby设计模式透析之 —— 单例(Singleton)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8868758 此为Java设计模式透析的拷贝版,专门为Ruby爱好者提供的,不熟悉R ...

  5. 设计模式--单例(Singleton)模式

    模式意图 保证一个类只用一个实例,并且提供一个全局访问点 类图 应用场景 1.需要更严格地控制全局变量时,使用单例模式: 2.重量级的对象如线程池对象,数据库连接池对象,不需要多个实例的对象如工具类等 ...

  6. 深入浅出单实例Singleton设计模式

    深入浅出单实例Singleton设计模式 陈皓 前序 单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了.这个设计模式主要目的是想在整 ...

  7. 跨应用程序域(AppDomain)的单例(Singleton)实现

    转载自: 跨应用程序域(AppDomain)的单例(Singleton)实现 - CorePlex代码库 - CorePlex官方网站,Visual Studio插件,代码大全,代码仓库,代码整理,分 ...

  8. Objective-C设计模式——单例Singleton(对象创建)

    单例 和其它语言的单例产不多,可以说是最简单的一种设计模式了.但是有几个点需要注意下,单例就是一个类只有一个实例. 所以我们要想办法阻止该类产生别的实例,一般语言中都会将构造函数写为private.但 ...

  9. java设计模式 单例_java设计模式一(单例模式singleton)

    1 概述 如果要保证系统里一个类最多只能存在一个实例时,我们就需要单例模式.这种情况在我们应用中经常碰到,例如缓存池.数据库连接池.线程池.一些应用服务实例等.在多线程环境中为了保证实例的唯一性其实并 ...

  10. Java设计模式透析之 —— 单例(Singleton)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8860649 写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上 ...

最新文章

  1. linux-RPM安装
  2. Yarn 问题发现与解决
  3. Markdown-VScode打造Markdown编辑器
  4. 前端学习(3235):react生命周期2
  5. VB:将短文件名格式转成长文件名
  6. eclipse中pom文件的查看
  7. FireMonkey TListView 使用 LiveBindings 绑定 TObjectList
  8. 计算机外设原理,计算机外设原理是什么
  9. 2011新版车主宝典改进亲体验(Android版)
  10. 【C++设计模式】Singleton 单例设计模式与线程安全
  11. OSChina 周四乱弹 ——一周五天在诈尸
  12. linux文件目录基本操作实验结论,实验 Linux文件和目录操作
  13. nginx 配置https 代理http接口
  14. 计算之魂算法复杂度的相关概念
  15. Altera DDR3调试记录
  16. 算法基础--快慢指针
  17. 《劳动合同法》解读|新劳动合同法解析列表
  18. BUUCTF 静静听这么好听的歌(python脚本matlab脚本)
  19. CocosCreator系列——用安卓原生实现录音与播放功能
  20. Android应用图标尺寸以及drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi)

热门文章

  1. 【机器学习】AI去马赛克工具(图像修复)
  2. 帝国cms框架的Webshell
  3. HTML-定位网页元素
  4. 阿里巴巴矢量图库开源http://www.iconfont.cn/collections/detail?cid=29
  5. iOS7—Day by day—Day16:Decoding QR Codes With AVFoundation
  6. An invalid domain [] was specified for this cookie问题解决
  7. 分段函数的期望和方差_2020考研数学一大纲
  8. matlab的替代品,matlab的开源替代品--octave
  9. 集合的基本运算及文氏图
  10. 爽一把手写Bundle Adjustment