Code Bye

java SingleTon 单例模式

单例模式,就是只让实例化一个对象,很多地方讲的都是饿汉和懒汉模式,在类的内部实例化自己,再定义static方法将引用返回出去,外部通过类名.方法的方式获得引用。直接定义一个public、static、final的属性,该属性就是实例化后的引用,然后外部通过类名.属性的方法获得,这样可以吗?如果可以,和其他方式什么区别,如果不行,为什么?下面代码执行结果为true

package com.single;

public class SingleTon
{
	public static void main(String[] argv)
	{
		Single sin1 = Single.sin;
		Single sin2 = Single.sin;

		System.out.println(sin1 == sin2);
	}
}

class Single
{
	public static final Single sin = new Single();

	//私有的构造方法,只能在类内部使用,在外部是无法使用的,所以在外部new的话就编译不过了,保证了无法实例化多次
	private Single()
	{

	}
}

10分
这是一个饿汉的变种!你也可以放在静态代码块里NEW!其实是跟普通饿汉式是一样的!没有任何区别!

10分
只让实例化一个对象
这个是最终的目的,已经达到,所有没有任何问题,只是不同的实现手段。
大多数Java过分的强调getter, setter不一定是好事,具体情况更需要根据实际情况合理使用。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java SingleTon 单例模式