单例模式中分为饿汉模式、懒汉模式两种

一.创建饿汉模式单例 package com.yiyun; /**

单例模式Singleton

应用场合:有些对象只需要一个就足够了,如古代的皇帝、老婆

作用:保证整个应用程序中某个实例有且只有一个

类型:饿汉模式、懒汉模式

*本类单例是饿汉模式,它是线程安全的,在类加载的时候就已经创建对象了 */

public class Singleton {

//1.将构造方法私有化,不允许外部直接创建对象

private Singleton() {

}

//2.创建类的唯一实例,使用pirvate static修饰 不让外部直接访问类的成员

private static Singleton instance = new Singleton();

//3.提供一个用于获取实例的方法 使用public static修饰对外提供服务

public static Singleton getInstance() {

return instance;

}

}

二.创建懒汉模式单例

package com.yiyun; /**

单例模式中的

懒汉模式

区别:饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全

懒汉模式的特点是加载类时比较快,但第一次运行时获取对象的速度比较慢,线程不安全

*/

public class Singleton2 {

//1.将构造方法私有化,不允许外部直接创建对象

private Singleton2() {

}

//2.创建类的唯一实例,使用pirvate static修饰 不让外部直接访问类的成员

private static Singleton2 instance;

//3.提供一个用于获取实例的方法 使用public static修饰对外提供服务

public static Singleton2 getInstance() {

if (instance == null) {

instance = new Singleton2();

}

return instance;

}

}

三.测试类

package com.yiyun; public class Test {

public static void main(String[] args) {

//饿汉模式

Singleton singleton = Singleton.getInstance();

Singleton singleton1 = Singleton.getInstance();

if (singleton == singleton1) {

System.out.println("singletor与singletor1是同一个实例");

}else{

System.out.println("singletor与singletor1不是同一个实例");

}

//懒汉模式

Singleton2 s3 = Singleton2.getInstance();

Singleton2 s4 = Singleton2.getInstance();

if (s3 == s4) {

System.out.println("s3 与 s4 是同一个实例");

}else{

System.out.println("s3 与 s4 不是同一个实例");

}

}

}

java单一窗体设计模式,JAVA中设计模式之 -- 单例模式相关推荐

  1. php工厂模式和单例模式,php 设计模式之工厂模式、单例模式、注册树模式

    php 设计模式之工厂模式.单例模式.注册树模式 在软件工程中,创建型设计模式承担着对象创建的职责,尝试创建适合程序上下文的对象,对象创建设计模式的产生是由于软件工程设计的问题,具体说是向设计中增加复 ...

  2. Java总结之设计模式(工厂模式)

    1.Java设计模式分类 1.1 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式. 1.2 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组 ...

  3. java 23 种设计模式-23-java 策略模式(Strategy Pattern)

    目录 目录 策略模式 实际案例 定义 测试 实现方式 UML & Code UML Code 系列导航 策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运 ...

  4. Java中的设计模式:“代理模式”的理解

    代理模式定义: 为其他对象提供一种代理以控制对这个对象的访问.在面向对象中,有时候直接访问一些对象比较麻烦,所以代理模式就是在这个对象上加上一个访问该对象的访问层.类似于很多明星的事务实际都是交给经纪 ...

  5. java 模板方法_设计模式(java实现)_模板方法模式(Template method)

    设计模式(java实现)_模板方法模式(Template method) 模板方法模式是编程中经常用到到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个 ...

  6. 访问者模式的java语言_Java 设计模式 之 访问者模式

    package com.visit.theory; import java.util.ArrayList; public class Test { public static void main(St ...

  7. java中单例设计模式登记式单例类_java23种设计模式-创建型模式之单例模式

    单例模式(Singleton) 单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1.某些类创建比较频 ...

  8. 装饰模式java咖啡_Java设计模式——装饰者模式

    概述: 本章可以称为"给爱用继承的人一个全新的设计眼界".我们即将再度探讨典型滥用问题.你将在本章学到如何使用对象组合的方式,做到在运行时装饰类.为什么呢?一旦你熟悉了装饰者的技巧 ...

  9. Java二十三设计模式之-----原型模式

    一.原型模式(Prototype) 原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制.克隆,产生一个和原对象类似的新对象.本小结会通 ...

最新文章

  1. 运用深度学习教机器人理解自然语言
  2. 取得MS SQL 2000数据库一个表的所有列名
  3. linux ctrlc 退出循环_linux按行读取 (while read line与forloop)
  4. Spark学习之第一个程序打包、提交任务到集群
  5. JavaWeb JDBC初步连接和JDBC连接规范化
  6. Android ViewPager 重复数据问题的解决方法
  7. NGUI 3.5课程(五岁以下儿童)button-图片切换
  8. M1 Mac用户:如何检查SSD是否过度磨损
  9. 算法与数据结构(基于C语言)中线性表的快速排序快速查找
  10. IIS DirectoryEntry
  11. C++定义点和矩形求矩形面积周长
  12. 计算机桌面ie图标无法删除,桌面ie图标删除不了的解决方法
  13. win10在此计算机上找不到系统映像,大神分析win10系统使用DISM修复找不到源的具体步骤...
  14. 8岁 YouTube博主年收入1.8亿,成最赚钱博主!
  15. vue.draggable实现元素拖动效果
  16. JS+BOM+DOM汇总
  17. 2016第四套人民币荧光币价格表一览
  18. CAD导入Revit缺少东西原因-Revit中如何批量导出CAD图纸
  19. 一条命令将windows下多个ts文件合并为一个ts文件
  20. comsol图形无法即时显示问题

热门文章

  1. FastDFS分布式文件系统
  2. hibernate 和 mybatis 比较
  3. 天文学家用AI探测宇宙:借助图像识别探索银河系中的红巨星
  4. 360要在A股上市 华泰联合证券已签订IPO辅导协议
  5. winform B窗體調用A窗體的DATAGRIDVIEW刷新
  6. chkdsk 和sfc.exe修复命令
  7. 强大的流程图绘制控件WpfDiagram
  8. The requested URL /server-status was not found on this server
  9. 【编程好习惯】复用代码以提高可维护性
  10. EMC业务连续性和容灾服务