搜索
写经验 领红包
 > 情感

设计模式之单例模式是什么(设计模式单例模式c)

导语:设计模式之单例模式

一 简介

单例模式是Java设计模式中最常用的一种,比如Spring中就用到了单例模式。他是某一个类只有一个实例,并向整个系统提供这个实例。因为只有一个实例,所以它减少了性能开销。

二 常见形式

1.饿汉式

优点是线程安全,因为不用考虑线程安全,不用考虑锁,所以性能高。

缺点是类加载时就初始化实例,占用资源。

常用于系统启动就要实例化的类。

public class Singleton_ehan {    private Singleton_ehan(){} //构造器私有化    public static final Singleton_ehan INSTANCE = new Singleton_ehan();}

2.懒汉式

优点是类加载时不用初始化实例,不占用资源。

优点是线程不安全,要加锁,所以性能低。

常用于明确用时再去实例化的需求。

public class Singleton_lanhan_2 {    private static Singleton_lanhan_2 instance;    private Singleton_lanhan_2(){}    public static Singleton_lanhan_2 getInstance(){        if (instance == null) {//为了性能问题,在进入锁之前,判断一下。            synchronized (Singleton_lanhan_2.class) {//为了线程安全问题                if (instance == null) {                    instance = new Singleton_lanhan_2();                }            }        }        return instance;    }}

以上是常用的几种方式,至于选择哪一种,还是要看需求,总之合适的才是最好的。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小德创作整理编辑!