定义
在java程序中只有一个Class实例对象。
为何试用
比如类似于连接数据库这样的操作,只需要一个连接对象。这样可以节省内存,也有利于垃圾回收(GC)
也可以状态化比如说论坛上的访问计数器。
也可以做无状态的工具性质的功能。
例子:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
使用Singleton.getInstance()可以访问单态类。
但是值得注意的是在分布式的情况下一定要注意,不同的对象都去装在单例对象。