您的位置首页百科知识

java代码如何实现单例模式及例子

java代码如何实现单例模式及例子

的有关信息介绍如下:

java代码如何实现单例模式及例子

单例模式是java软件系统中应用最多的一种设计模式。

打开eclipse,新建一个java项目,在src目录下新建包test,然后新建类Singleton

package test;

public class Singleton {

}

实现例模式的第一种形式:懒汉式,这是日常开发中用的最多的一种模式。这种模式在方法上加上synchronized关键字,避免了实例的重复创建。

package test;

public class Singleton {

private static Singleton instance=null;

public static synchronized Singleton getInstance(){

if(instance==null){

instance=new Singleton();

}

return instance;

}

private Singleton(){

}

}

实现例模式的第二种形式:饿汉式,这种模式用内部类实现,写法比较简单。

package test;

public class Singleton {

private static final Singleton instance = new Singleton();

private Singleton(){

//do something

}

//这里提供了一个供外部访问本class的静态方法,可以直接访问

public static Singleton getInstance(){

return instance;

}

}

实现例模式的第二种形式:双重锁式。这种模式把synchronized关键字移到了代码块内,比懒汉式更适合在高并发应用中使用,效率性能更高。

package test;

public class Singleton {

private static volatile Singleton instance=null;

private Singleton(){

//do something

}

public static Singleton getInstance(){

if(instance==null){

synchronized(Singleton.class){

if(instance==null){

instance=new Singleton();

}

}

}

return instance;

}

}

单例模式的测试如下,先添加一个公共方法

public void doSomething(){

System.out.println("singleton is doing something");

}

单例模式的调用非常简单,只需要调用类名+方法名即可。

public static void main(String args[]){

Singleton.getInstance().doSomething();

}