//测试类
public class SingletonTest1
{
public static void main(String[] args)
{
//检验产生的实例是否是同一个实例
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
System.out.println(singleton1==singleton2); //输出true,说明产生的是同一个对象
}
}
//------单例类---------------------
class Singleton
{
//在同一个类内部,可以通过访问private,也就可以产生一个实例。(第三步)
private static Singleton singleton = new Singleton(); //也必须是静态的
//构造方法必须私有,不然就可以new出来很多对象(第一步)
private Singleton()
{
}
//构造方法私有带来一个问题,就是不能产生实例了,所以通过写一个方法返回一个实例(第二步)
public static Singleton getInstance() //必须为static 这样在main中才能直接通过类名访问(静态的不能访问非静态的)
{
return singleton; //返回提前产生好的实例
}
}
————————————————
//测试类
public class SingletonTest1
{
public static void main(String[] args)
{
//检验产生的实例是否是同一个实例
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
System.out.println(singleton1==singleton2); //输出true,说明产生的是同一个对象
}
}
//------单例类---------------------
class Singleton
{
private static Singleton singleton; //先不产生实例
//构造方法必须私有,不然就可以new出来很多对象(第一步)
private Singleton()
{
}
//构造方法私有带来一个问题,就是不能产生实例了,所以通过写一个方法返回一个实例(第二步)
public static Singleton getInstance() //必须为static 这样在main中才能直接通过类名访问(静态的不能访问非静态的)
{
if(singleton == null) //判断是否产生了实例,如果没有产生
{
singleton = new Singleton(); //则产生一个
}
return singleton;
}
}
单例模式(java两种方式实现)
最新推荐文章于 2024-07-24 15:19:30 发布