在设计模式中,单例可能是最简单的设计模式。单例是一个提供 有且并且只有一个特定类型对象的方法。一个重要的方面是单例必须提供一个全局访问点,所以单例通常是你使用一个全局变量的解决方法。它通常应该有注册后者查找服务的特性。
package designers.messenger.singleton; /** * Created by Administrator on 2018/4/14. * never instantiate more than one * Since this isn't inherited from a Cloneable * base class and cloneability isn't added * making it final prevents cloneabitity from * being added through inheritance * */ final class Singleton { private static Singleton singleton=new Singleton(47); private int i; private Singleton(int i){ this.i=i; } public static Singleton getReference(){ return singleton; } public int getValue(){ return i; } public void setValue(int i){ this.i=i; } }
为什么要把Singleton 设置为final呢,因为所有的类都继承自Object,Object里面有clone方法,设置为final是防止,客户端通过clone()方法产生新的对象。