Java设计模式之单例模式

来源:互联网 发布:数据仓apriori算法 编辑:程序博客网 时间:2024/06/16 11:54

单例模式有两种实现方式,一为懒汉式,二为饿汉式。

package com.lihan.javacd;
//单例模式懒汉式实现
public class LanHan {
public static void main(String[] args) {
Singleton1 s1=Singleton1.getInstance();
Singleton1 s2=Singleton1.getInstance();
System.out.println(s1==s2);
}
}
class Singleton1{
//1.私有化构造器,使得在类的外部无法创建对象
private Singleton1() {

}
//2.在类的内部声明一个实例属性
private static Singleton1 instance=null;
//3.私有化该实例,通过公共方法访问
//4.只能通过类调用该公共方法,因此设置为static的,同时实例属性也必须声明为static的
public static Singleton1 getInstance() {
if(instance==null) {
instance=new Singleton1();
}
return instance;
}


}

package com.lihan.javacd;
//单例模式饿汉式实现
public class EHan {
public static void main(String[] args) {
Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
System.out.println(s1==s2);
}
}
class Singleton{
//1.私有化构造器,使得在类的外部不能调用构造器
private Singleton() {

}
//2.在类的内部创建一个类的实例
private static Singleton instance=new Singleton();
//3.私有化此对象,通过公共方法来调用
//4.此公共的方法只能通过类来调用,因此设置为static的,同时类的实例也必须为static声明的
public static Singleton getInstance() {
return instance;
}
}


0 0