Java学习笔记(3)-23种设计模式之单例模式

2020-02-20  本文已影响0人  非典型程序猿

每次看到招聘要求上大家都会写要熟悉设计模式,既然大家都在强调,那么也可想而知设计模式的重要性了,设计模式能够扩宽你写代码的思路,能够让你写出高水平的代码。那么笔者就这23种设计模式给大家一一做总结。

定义

单例,即指只有一个实例,对于我们日常的开发过程中,有的对象是需要大量反复使用的,如果每次都去创建新对象那么就会造成内存资源的浪费,因此我们在开发过程中就需要了解单例模式,我们就可以反复的使用同一个实例去做我们的操作,以达到节省内存,提高性能的目的。

特点

单例模式的使用

一般单例模式仅仅只为外部提供一个获取单例的方法,而创建单例的过程需要在这个单例类内部进行。总体来说使用过程是非常方便的。

单例模式的写法

懒汉式单例

public class User {
    private static volatile User mUser=null;    //保证 mUser 在所有线程中同步
    private User(){}    //private 避免类在外部被实例化
    public static synchronized User getInstance()
    {
        //getInstance 方法前加同步
        if(mUser==null){
            mUser=new User();
        }
        return mUser;
    }
}

首先我们分析懒汉式单例的特点,为什么叫懒汉式单例,是因为mUser在使用之前并没有被实例化,是在调用getInstance的时候才开始实例化,也就是使用时才加载,在这段代码中需要注意几个点。

饿汉式单例

public class User {
    private static final User instance=new User();
    private User(){}
    public static User getInstance(){
        return instance;
    }
}

饿汉式单例特点,也就是在最开始我们就创建了一个静态的变量对象供使用,而并非等到我们调用getInstance时才开始创建实例,而以后也不再改变,因此也是线程安全的。 经过上述的两种写法的比较,在日常的开发过程中笔者个人认为使用懒汉式单例较为合适。

单例模式就给大家总结到这里啦,觉得写的还不错的记得喜欢~

上一篇下一篇

猜你喜欢

热点阅读