所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的

1. 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。
2. 如何实现?饿汉式  vs 懒汉式
3. 区分饿汉式 和 懒汉式饿汉式:坏处:对象加载时间过长。好处:饿汉式是线程安全的懒汉式:好处:延迟对象的创建。目前的写法坏处:线程不安全。--->到多线程内容时,再修改
package com.wdl.day14;
public class SingletonTest1 {public static void main(String[] args) {//    Bank bank1 = new Bank();
//    Bank bank2 = new Bank();Bank bank1 = Bank.getInstance();Bank bank2 = Bank.getInstance();System.out.println(bank1 == bank2);}
}//饿汉式
class Bank{//1.私有化类的构造器private Bank(){}//2.内部创建类的对象//4.要求此对象也必须声明为静态的private static Bank instance = new Bank();//3.提供公共的静态的方法,返回类的对象public static Bank getInstance(){return instance;}
}
package com.wdl.day14;
/** 单例模式的懒汉式实现**/
public class SingletonTest2 {public static void main(String[] args) {Order order1 = Order.getInstance();Order order2 = Order.getInstance();System.out.println(order1 == order2);}
}class Order{//1.私有化类的构造器private Order(){}//2.声明当前类对象,没有初始化//4.此对象也必须声明为static的private static Order instance = null;//3.声明public、static的返回当前类对象的方法public static Order getInstance(){if(instance == null){instance = new Order();}return instance;}}

单例 (Singleton)设计模式相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. python3.4.4 配置opencv3.1 解决pip版本不够的问题
  2. PTA12、 统计文字中的单词数量并按出现次数排序 (10 分)
  3. mysql必知必会第一节
  4. 0x06 MySQL 单表查询
  5. 强化简书社交属性,淡化官腔官调
  6. 麒麟810处理器_荣耀9X将搭载麒麟810处理器:全球四大7nm芯片之一无法低调
  7. Please select Android SDK的解决
  8. 泛函分析笔记08:有界线性算子和泛函介绍与共鸣定理
  9. 苹果手机速度慢_安卓日语App,苹果也看进来
  10. 18个Java开源CMS系统一览
  11. 机器学习特征工程之特征缩放+无量纲化:非线性缩放(例如,sigmoid、tanh、arctan等)
  12. 常用moment时间总结
  13. SpringBoot系列课程(二)-SpringBoot整合MyBatis
  14. python 对excel的函数操作_自动化报表(3)
  15. ImportError: Couldn‘t import Django
  16. 书生笔记-binlog 的写入机制
  17. 【JokerのKintex7325】SDK程序从QSPI启动过慢分析。
  18. [附源码]Python计算机毕业设计大众点评管理系统
  19. matlab画信号图方法,献给初学者:手把手教你绘制信号通路图
  20. 2020 继续踏踏实实的做好自己

热门文章

  1. 数据结构---哈夫曼树
  2. 使用Java查询Sql Server数据库
  3. sklearn PCA特征降维
  4. Web Service简介
  5. P2575 高手过招
  6. [UOJ299][CTSC2017] 游戏
  7. LOJ洛谷P3225:矿场搭建(割点、点双)
  8. P3911-最小公倍数之和【莫比乌斯反演】
  9. P1552-[APIO2012]派遣【左偏树】
  10. 【DP】砝码称重 (ssl 1072)