单例模式

来源:互联网 发布:新人怎么成为网络作家 编辑:程序博客网 时间:2024/05/22 05:06
package cn.test.demo;


/**
 * @author Administrator 单例模式 饿汉式
 */

public class Singleton01 {


private static Singleton01 singleton01 = new Singleton01();


private Singleton01() {
}


public static Singleton01 getInstance() {
return singleton01;
}

//测试调用
public void test() {
System.out.println("java");
}


}

————————————————————————————————————————————————————

package cn.test.demo;


/**
 * @author Administrator 单例模式 懒汉式 
 * 懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的
 */
public class Singleton {


// 定义一个私有的静态全局变量来保存该类的唯一实例
private static Singleton singleton;


// 构造方法必须是私有的,外部就不能通过new来创建实例了
private Singleton() {
}


// 定义一个全局访问获取示例的静态方法,需要公开因为别人要通过这个方法获取示例
public static synchronized Singleton getInstance() {

// 即在第一次调用实例化,以后则不会示例化
if (singleton == null) {

singleton = new Singleton();


}
return singleton;
}


// 测试调用
public void test() {
System.out.println("java");
}


}

————————————————————————————————————————————

package cn.test.demo;


/**
 * @author Administrator
 * 测试
 */
public class Test {
public static void main(String[] args) {


// Singleton.getInstance().test();//懒汉式


// Singleton01.getInstance().test();//饿汉式


}
}


0 0
原创粉丝点击