单例模式

只有一个单例类,没有其他的层次结构和抽象。该模式确保该类只生成一个对象。
关键点:
1.构造函数私有化,一般为private,不能通过new的形式手动构造单例类对象。
2.通过一个公有静态方法返回单例类对象。
3.确保单例类的对象有且只有一个,尤其是在多线程环境下。
4.确保单例类对象在反序列化时不会重新构建对象。

(1)饿汉单例模式
在声明静态对象时初始化对象。

(2)懒汉单例模式
在第一次使用时进行初始化对象。
初始方法使用synchronized修饰。

(3)Double checklock单例模式
示例:
public class Singleton{
private static Singleton mIntance=null;
private Singleton(){}
public static Singleton getInstance(){
if(mIntance==null){
synchronized(Singleton.class){
if(mIntance==null){
mIntance=new Singleton();
}
}
}
}

}

jdk1.5之后使用volatile完成单例对象声明。
private volatile static Singleton mInstance=null;//来声明单例对象
(4)静态内部类单例模式
(5)枚举单例
(6)使用容器实现单例模式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容