单例设计模式的实现

设计模式:对问题行之有效的解决方法,其实它是一种思想,适用于任何编程语言。

单例设计模式:保证一个类在内存中的对象的唯一性,就是只能创建一个该类的对象。

如何保证对象的唯一性呢?

(1)不允许其他程序用new方法创建该类的对象;
(2)在该类中创建一个本类实例;
(3)对外提供一个公有方法,让其他程序可以获得该实例。
步骤:
(1)私有化该类的构造函数;
(2)通过new在本类中创建一个本类的对象;
(3)定义一个公有的方法,返回本类的对象。

<pre name="code" class="java">/*
单例模式类Single,实现功能:
(1)不允许其他程序用new方法创建该类的对象;
(2)在该类中创建一个本类实例;
(3)对外提供一个公有方法,让其他程序可以获得该实例。
步骤:
(1)私有化该类的构造函数;
(2)通过new在本类中创建一个本类的对象;
(3)定义一个公有的方法,返回本类的对象。
*/
/*
单例设计模式方法一
*/
class Single
{
	/*
	构造函数加上private权限,就不能再用new方法创建对象。
	*/
	private Single(){}
	private int num;
	/*
	本类中创建的本类对象,设置为私有(不允许其他类访问),设置为静态(静态函数getInstance()要访问)
	*/
	private static Single s = new Single();
	/**
	返回本类中的对象,设置成静态的可以通过类名来调用。
	@return s:本类中创建的对象
	*/
	public static Single getInstance()
	{
		return s;
	}
	public void setNum(int num)
	{
		this.num = num;
	}
	public int getNum()
	{
		return num;
	}
}
/*
单例设计模式方法二
*/
class Single1
{
	private static Single1 s = null;
	public static Single1 getInstance()
	{
		if(s==null)
			s = new Single1();
		return s;
	}
}
/*
单例模式演示
*/
class SingleDemo 
{
	public static void main(String[] args) 
	{
		Single s1 = Single.getInstance();
		Single s2 = Single.getInstance();
		System.out.println(s1==s2);
		s1.setNum(10);
		s2.setNum(20);
		System.out.println(s1.getNum());
		System.out.println(s2.getNum());

	}
}


运行结果如图所示:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值