JAVA单例模式的理解

鄙人初学设计模式,以下是最简单的单例模式,所谓的单例也就是单个实例,是说一个类只能生成一个对象。单例模式可分为三个步骤。代码如下:

public class Singleton
{
	private Singleton()
	{
	
	}
	
	private static Singleton singleton=new Singleton();
	
	static Singleton getSingleton(Singleton instance)
	{
		return instance;
	}	
}
第一个函数为对Singleton类构造方法的重构,声明为private私有的是为了不让其他的类直接去new一个Singleton(),而方法的重构与否与返回值无关。既然外部的类无法生成Singleton类对象,那么Singleton对象就只能在自己内部声明,然后再通过一个函数返回该类型对象的引用。

确定了这个思路,接下来就要去生成一个对象了,为了不让外部类引用,同样也声明为private权限。

到了第三步,应该声明一个函数,返回第二步生成的Singleton类对象的引用。然而,一般来说,外部类想要调用getSingleton方法,要通过Singleton类对象的引用来调用,因为我们要实现的是单例模式,在第二步中已经生成了一个实例。这样是行不通的。所有将getSingleton方法声明为static,这样外部类可直接通过Singleton.getSingleton(Singleton instance)这样的形式来调用该方法。好了,写到这里,还要在第二步中加上static,因为static方法中是不能引用非静态成员变量的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值