单例模式(Singleton)

来源:互联网 发布:淘宝快手直播号能买吗? 编辑:程序博客网 时间:2024/06/10 01:17

一.单例模式三个特点

1.该类只有一个实例 ---->    1.私有,静态的自身实例

2.该类自行创建实例 ---->2.私有的构造方法

3.向整个系统公开这个实例对象 ---->3.公开的静态方法


二.单例模式的种类

1.HangerSingleton饿汉式

class Singleton {

private static Singleton singleton = new Singleton();

private Singleton(){

}

public static Singleton getInstance(){

return singleton;

}


2.LazzySingleton懒汉式

class Singleton {

private static Singleton singleton = null;

private Singleton(){

}

public static Singleton getInstance() {

if(singleton==null){

singleton = new Singleton();

}

return singleton;

}

}

此单例模式只适合单线程,在多线程中使用sychronized关键字来避免线程并发问题则:

class Singleton {

private static Singleton singleton = null;

private Singleton(){

}

public static  sychronized Singleton getInstance() {

if(singleton==null){

singleton = new Singleton();

}

return singleton;

}

}


原创粉丝点击