单例模式

在《Thinking In Java》中读到单例模式自己写几个基于java的单例模式

public class ConnectionManager
{
	public static void main (String[] args)
	{
		Connection.access().say();
		Connection.access().say();
		Connection1.access().say();
		Connection1.access().say();
	}
}


//懒汉式单例模式
class Connection
{
	//私有静态,已实例化的该类引用
	private static Connection myInstance=new Connection();


	//私有构造函数
	private Connection ()
	{
		System.out.println("Connection构造函数");
	}


	//共有静态访问函数
	public static Connection access()
	{
		return myInstance;
	}


	//该类具体方法
	public void say()
	{
		System.out.println("\nHello ~~");
		System.out.println(this);
	}
}


//饿汉式单例模式
class Connection1
{
	//私有静态,该类引用,并未实例化
	private static Connection1 myInstance;


	//私有构造函数
	private Connection1 ()
	{
		System.out.println("------------\nConnection1构造函数");
	}


	//共有静态访问函数 在使用时才会实例化
	public static Connection1 access()
	{
		if (myInstance == null)
		{
			myInstance = new Connection1();
		}
		return myInstance;
	}


	//该类具体方法
	public void say()
	{
		System.out.println("\nHello ~~1");
		System.out.println(this);
	}
}

可以看到两种单例模式的引用地址是相同的



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值