设置模式:在大量的实践中总结和理论化之后优选的代码结构,编程风格,以及解决问题的思考方式
package test10;
//饿汉式
public class TestSingleton {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1==s2);
}
}
//只能创建Singleton的单个实例
class Singleton{
//私有化构造器,使得在类的外部不能够调用此构造器
private Singleton() {
}
//在类的内部创建一个类的实例
private static Singleton instance = new Singleton();
//私有化此对象,通过公共的方法来调用
//此公共的方法,只能通过类来调用,因为设置为static的,同时类的实例也必须为static声明的
public static Singleton getInstance() {
return instance;
}
}
package test10;
//懒汉式
public class TestSingleton1 {
public static void main(String[] args) {
Singleton1 s1 = Singleton1.getInstance();
Singleton1 s2 = Singleton1.getInstance();
System.out.println(s1==s2);
}
}
class Singleton1{
//私有化构造器
private Singleton1() {
}
//在类的内部创建一个实例
private static Singleton1 instance=null;
//私有化此对象,用公共的方法来调用
public static Singleton1 getInstance() {
if(instance==null) {
instance = new Singleton1();
}
return instance;
}
}
结果都为 true