Java设计模式之单例模式
实现方式:
-
1.构造器私有化,只能在类的内部创建对象,外部无法创建。
-
2.对外提供私有的、静态的、该类的引用(用于存储创建的对象)
-
3.对外提供一个公共的、静态的、访问方式(方法)
1.饿汉模式
实例在类第一次加载之后创建,线程安全。
package com.tyl.homework07011;
public class SingleTonPatter01 {
public static void main(String[] args) {
System.out.println(Single01.newInstance());
System.out.println(Single01.newInstance());
System.out.println(Single01.newInstance());
}
}
class Single01{
//对外提供私有的、静态的、该类的引用
private static Single01 single01 = new Single01();//实例在类第一次加载之后创建
//构造器私有化,外部无法创建对象
private Single01() {
super();
// TODO Auto-generated constructor stub
}
//对外提供一个公共的、静态的、访问方式(方法),返回该类实例
public static Single01 newInstance() {
return single01;
}
}
2.懒汉模式
实例在方法被调用的时候创建,线程不安全。
package com.tyl.homework07011;
public class SingleTonPatter02 {
public static void main(String[] args) {
System.out.println(Single02.newInstance());
System.out.println(Single02.newInstance());
System.out.println(Single02.newInstance());
}
}
class Single02{
//对外提供私有的、静态的、该类的引用
private static Single02 single02;
//构造器私有化,外部无法创建对象
private Single02() {
super();
// TODO Auto-generated constructor stub
}
//公共的静态的访问方式,返回该类实例
public static Single02 newInstance() {
//第一次调用方法时候才创建对象,如果对象已被创建则直接返回创建好的对象
if(single02 == null) {
single02 = new Single02();
}
return single02;
}
}