1、单例模式作用
解决一个类在内存中只能存在一个对象,想要保证对象的唯一。
2、遵循的原则
1.为了避免其他程序过多的建立该类对象。禁止其他程序建立该类对象。
2.为了其他程序可以访问该类对象,在本类中自定义一个对象。
3.方便其他程序对自定义类的对象的访问,对外提供一些访问方式。
3、代码
1.将构造函数私有化
2.在类中创建一个私有的本类对象
3.提供一个用类名调用的公有方法获取该对象
4、具体实现
public class Singleton01 { //懒汉式
private static Singleton01 s = null;
private String name;
private Singleton01(){
}
public static Singleton01 getInstance(){
if(s==null){
s = new Singleton01();
}
return s;
}
}
public class Singleton02 { //饿汉式
private static Singleton02 s = new Singleton02();
private Singleton02(){
}
public static Singleton02 getInstance(){ // 翻译:Instance 例子、实例
return s;
}
}
测试类
public class Text {
public static void main(String[] args) {
Singleton01 a = Singleton01.getInstance();
Singleton01 b = Singleton01.getInstance();
System.out.println(a==b);
Singleton02 c = Singleton02.getInstance();
Singleton02 d = Singleton02.getInstance();
System.out.println(c==d);
}
}
输出结果:true
true
public class danli03 {
public static void main(String[] args) {
laohan x = laohan.getIntence();
laohan y = laohan.getIntence();
System.out.println(x==y);
}
}
class laohan {//老汉式
private static final laohan a = new laohan();
private laohan(){
}
public static laohan getIntence(){
return a;
}
}
}
输出结果是 : true
x 和 y 是同一个对象