当前位置:   article > 正文

Day15_设计模式

Day15_设计模式

设计模式

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().
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/1022387
推荐阅读
相关标签
  

闽ICP备14008679号