设计模式之单例模式:singleton

/*单例模式意味着一个类只能实现一个对象,可以避免某些功能冲突,也可以节省内存,因为限制了对象的创建
 */
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");	//相等则成功
		}
	}
}

猜你喜欢

转载自blog.csdn.net/m0_37907835/article/details/79683079