JAVA单例模式的理解

来源:互联网 发布:编程语言有哪几种 编辑:程序博客网 时间:2024/05/18 17:43

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

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方法中是不能引用非静态成员变量的。