当前位置: 首页 > news >正文

Day15_设计模式

文章目录

  • 设计模式
      • 说一下你的这两个项目用了什么设计模式?为什么要这么用?
      • 说说什么是单例模式
          • 1.饿汉式:在类初始化时直接创建实例对象,不管你是否需要这个对象,都会创建。 **没有线程安全问题**
          • 2.懒汉式:延迟创建这个实例对象 (什么时候调用get方法 什么时候创建对象)
          • 3.双检锁
      • 说说你对代理模式的理解
      • 工厂模式
      • 装饰器模式是什么
      • 代理模式和装饰器模式有什么区别?
      • 策略模式
      • 职责链模式基本介绍
      • 适配器设计模式
      • 知道观察者模式吗?

设计模式

10万字总结java面试题和答案(八股文之二)的设计模板部分没有看

说一下你的这两个项目用了什么设计模式?为什么要这么用?

说说什么是单例模式

整个系统只能使用一个对象实例。
(1)饿汉式单例模式的写法:线程安全
(2)懒汉式单例模式的写法:非线程安全
(3)双检锁单例模式的写法:线程安全

不论是饿汉式还是懒汉式都有一个共同特点:类是public修饰的,而且类里面只有一个public,其余的都是private

1.饿汉式:在类初始化时直接创建实例对象,不管你是否需要这个对象,都会创建。 没有线程安全问题

实现步骤:

  1. 私有化构造器(private)
  2. 自行创建,并且用静态变量保存(static)
  3. 向外提供这个实例 (public)
  4. 强调这是一个单例,我们可以用final修饰
//方法一:最朴素的方式public class Singleton {public static final Singleton INSTANCE = new Singleton();private Singleton() {};
}
//方法二,使用枚举类型,枚举类型表示该类型的对象是有限的几个。我们可以限定为一个,就成了单例public enum Singleton2 {INSTANCE;
}
//方法三:使用静态代码块 实现复杂逻辑构造器的饿汉式单例模式public class Singleton3 {//私有化有参构造器private Singleton3(String info){this.info = info;}private String info;public static final Singleton3 INSTANCE;//在静态代码块中进行初始化实例对象static {Properties props = new Properties();try {props.load(Singleton3.class.getClassLoader().

http://www.mrgr.cn/news/13377.html

相关文章:

  • 同城外卖系统开发方案解析
  • Lua收集请求日志
  • dubbo:dubbo服务负载均衡、集群容错、服务降级、服务直连配置详解(五)
  • Eureka Server高可用模式详解:实现无缝的故障转移与容灾
  • 代码随想录算法训练营第11天 | 150. 逆波兰表达式求值、239. 滑动窗口最大值、347.前 K 个高频元素
  • hutool工具类JSONUtil无法映射全是大写的单词,如何解决
  • 【处理音频需求】Python的webrtcvad库配置
  • kafka监听
  • 用宝塔部署项目到阿里云服务器访问不到的问题
  • MySQL 的半同步模式
  • MyBatis-Plus联表查询(mybatis-plus-join)
  • 实习结束总结20240828
  • LeetCode面试题Day18|LC61 旋转链表
  • Python TensorFlow入门与实践
  • Celery 中,广播模式可以通过使用 RabbitMQ 的 fanout 交换机来实现
  • JS脚本实现RPA模拟人工操作网页获取数据
  • 登录失败时刷新验证码
  • Avalonia与WPF开发时的差异总结
  • C语言基础(十二)
  • 美国短剧APP借力Facebook广告引流核心优势攻略