面试常问的设计模式

简便回答版

  1. 单例模式:单例对象对应的类只有一个实例存在,就是在内存中只有一个对象存在,它不用去频繁的new和销毁对象,大大节约了内存。
1.懒汉式单例:一开始没有被实例化,需要用的时候自己去实例化创建,代码原理就是:定义一个静态的对象但是不去new它,需要用这个对象的时候再去new。
public class Singleton {
 //默认不会实例化,什么时候用就什么时候new
    private static Singleton instance = null;
    private Singleton(){

    }
    public static synchronized Singleton getInstance(){
        if(instance == null){
   //什么时候用就什么时候new
            instance = new Singleton();
        }
        return instance;
    }
}
2.饿汉式单例:类一开始加载的时候就将对象实例化完成了,后面需要用的时候直接拿对象就行了。
public class Singleton {
 //一开始类加载的时候就实例化,创建单实例对象
    private static Singleton instance = new Singleton();
    private Singleton(){

    }
    public static Singleton getInstance(){
        return instance;
    }
}

2.工厂模式:spring就是工厂模式,通过bean将对象注入到beanFactory工厂里面,后续创建对象就是工厂帮我们创建对象,我们只需要调用就可以了。

注:懒汉和饿汉借鉴的是这位大佬的博客整理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值