设计模式-单例模式懒汉和饿汉的比较

来源:互联网 发布:windows update 安装 编辑:程序博客网 时间:2024/05/29 11:27

设计模式指的是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。

目的:使用实际模式为了可重用代码,让代码更容易被他人理解,保证代码的可靠性。

有哪些设计模式:

基本模式有23种:单例模式,工厂模式................

对于配置文件,工具类,线程池,缓存,日志对象等,如果创造出多个实例,就会导致许多问题,如占用过多的资源,不一致的结果等,采用单例模式解决。

常用的单例模式有两种:饿汉模式,懒汉模式

饿汉模式Java代码:(只要在加载类的时候,这个类的实例就会被加载,所以叫做饿汉模式)

/* * 单例模式:对于只需要一个对象采用单例模式 * 作用:保证实例有且只有一个 * 类型:饿汉懒汉两种模式 */public class Singleton {/* * 将构造器私有化,防止外部直接创建多个实例 */private Singleton(){}   //这里创建一个类的唯一实例private static final Singleton singleton=new Singleton();  //提供get方法来获取实例,外部调用几次都只会创建一个实例public static Singleton getSingleton() {return singleton;}   }

懒汉模式Java代码
/* * 懒汉模式:在加载类的时候并不会生成唯一实例,只有在 * 调用时候才会判断生成和返回实例,后续再调用实例的时候 * 由于声明的对象不为空,直接返回原来创建的实例 */public class Singleton {//私有化构造器private Singleton(){}//创建累的唯一实例private static Singleton s;//提供get方法获取实例public static Singleton getS() {//判断实例是否为空,if(s==null){s=new Singleton();}return s;} }
懒汉和饿汉的区别:

饿汉的特点是加载类比较慢(由于加载类的时候需要加载累的对象,比较慢),但是获取对象的速度比较快,线程安全;

懒汉的特点是加载类比较快,但是获取对象的速度比较慢,线程不安全;


原创粉丝点击