看了下单例模式,个人理解就是只能有一此实例化,这样对性能有一定提高。
下面说说学习小例子:
public class Singleton {
private Singleton(){}
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
public void sys(String s){
System.out.println(s+"singleton.........");
}
}
此类就是一个单例类,里面我写了一个方法
测试此类:
public class TestSingletion {
public static void main(String args[]){
Singleton.getInstance().sys("fdsfds");
}
}
只能通过Singleton.getInstance()得到实例,调用类中方法。
这就是一个单例模式。
网上还有一种方法是:
public class Singleton {
private static Singleton instance = null;
private Singleton(){
//应该加上这个
}
public static synchronized Singleton getInstance(){
if(instance==null){
instance = new Singleton();
}
return instance;
}
public void sys(String s){
System.out.println(s+"singleton.........");
}
}
网上说可以这样可以防止多个实例。
而我用测试类进行测试时,却可以实例化此类,不知道为何,谢谢能有人讨论下。
在各位的帮助下,我知道错了,谢谢