/*单例模式意味着一个类只能实现一个对象,可以避免某些功能冲突,也可以节省内存,因为限制了对象的创建
*/
class Unique
{
private Unique(){} //把构造函数设置为私有,确保类的外部不能实例化该类
static Unique unique = null; //为了避免线程不安全,可以把null改为new Unique(),在类刚加载的时候就实例化一个对象,在下面方法直接返回即可
public static Unique createUniObj() //这种方法不是线程安全的,给该方法加入synchronized关键字强制同步,每个线程进入该方法都要等其他线程离开,后果是降低性能
{
if(unique == null)
{
unique = new Unique();
return unique;
}
else
{
return unique;
}
}
public void prinf()
{
System.out.println("it works");
}
}
public class UniqueObj {
public static void main(String[] args)
{
Unique unique1 = Unique.createUniObj(); //尝试创建一个单例对象
unique1.prinf(); //测试对象是否创建成功
Unique unique2 = Unique.createUniObj(); //再次尝试创建一个对象
if(unique1.equals(unique2)) //比较两次创建的对象是否相等
{
System.out.println("it works too"); //相等则成功
}
}
}
设计模式之单例模式:singleton
最新推荐文章于 2024-09-06 11:59:22 发布