首页 > 其他分享 >单例模式

单例模式

时间:2022-11-28 11:35:38浏览次数:40  
标签:单例 getInstance 模式 instance static 饿汉 Order Bank

单例模式

/*
   1.单例设计模式
       单例设计模式:就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。

   2.如果实现?
       饿汉式 vs 懒汉式

   3.区分饿汉式和懒汉式
       饿汉式:坏处:对象加载时间过长。
              好处:饿汉式是线程安全的
       懒汉式:好处:延迟对象的创建。
              目前的写法坏处:线程不安全。
*/

 

// 饿汉式测试
public static void main(String[] args) {
       Bank bank1 = Bank.getInstance();
       Bank bank2 = Bank.getInstance();
       System.out.println(bank1 == bank2); // true
  }

// 懒汉式测试
public static void main(String[] args) {
       Order order1 = Order.getInstance();
       Order order2 = Order.getInstance();
       System.out.println(order1 == order2); // true
  }

 

饿汉式

class Bank{
   // 1.私有化类的构造器
   private Bank(){

  }

   // 2.内部创建类的对象
   // 4.要求此对象也必须声明为静态的
   private static Bank instance = new Bank();

   // 3.提供公共的静态方法,返回类的对象
   public static Bank getInstance(){
       return instance;
  }
}

 

懒汉式

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;
  }
}
 

标签:单例,getInstance,模式,instance,static,饿汉,Order,Bank
From: https://www.cnblogs.com/jiaxing-java/p/16931733.html

相关文章

  • Selenium4+Python3系列(十) - Page Object设计模式
    前言PageObject(PO)模式,是Selenium实战中最为流行,并且被自动化测试同学所熟悉和推崇的一种设计模式之一。在设计测试时,把页面元素定位和元素操作方法按照页面抽象出来,分离成......
  • 路由器模式“11b only”是什么意思
    路由器模式“11bonly”是什么意思“路由器11b后面带“only”的就是只使用这一种速率;对比来说还一种带“MIXED”的是向下兼容的混合模式(兼容11g和11n)。” 更多>......
  • 设计模式之命令模式
    概述在软件开发中,经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,特别希望能够以一种松耦合的方式来设......
  • 最新版gym-0.26.2中Atari环境下各游戏在不同模式和困难度下的遍历
    相关内容参看前文:最新版gym-0.26.2下Atari环境的安装以及环境版本v0,v4,v5的说明  ============================================......
  • 面试官:介绍一下 Redis 三种集群模式
    小码今天去面试。面试官:给我介绍一下Redis集群,小码:啊,平时开发用的都是单机Redis,没怎么用过集群了。面试官:好的,出门右转不谢。小码内心困惑:在小公司业务量也不大,单机的......
  • 01.java设计模式之单例模式
    参考:https://blog.csdn.net/liu_da_da/article/details/125425561一、什么是单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。二、单例的几种实现方式1......
  • 00.设计模式总览
    参考:https://baijiahao.baidu.com/s?id=1661505290125455712&wfr=spider&for=pc 概述:设计模式一般是描述如何组织代码和使用最佳实践来解决常见的设计问题。设计模式是......
  • 设计模式-工厂模式
    工厂模式定义工厂模式定义:这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式、在工厂模式中,我们在创建对对象时不会对客户端暴露创建逻辑,并且是通过使用......
  • 06.枚举与模式匹配
    定义枚举IP地址:IPv4、IPv6enumIpAddrKindf{V4,V6}枚举值letfour=lpAddrKind::V4;letsix=lpAddrKind::V6;将数据附加到枚举的变体中优点:......
  • LVS负载均衡集群--DR模式
    一、LVS-DR工作原理LVS-DR(LinuxVirtualServerDirectorServer)工作模式,是生产环境中最常用的一种工作模式。LVS-DR模式,DirectorServer作为群集的访问入口,不作为......