书上说,普通类的创建要靠new来产生,想要几个就new几个,
而单例模式的实现目的是某个类只能有一个实例,实现是通过private它的构造器,一般是提供一个getInstance方法得到它的实例。假设Single类是一个用单例模式实现的类,能通过getInstance方法得到它的唯一实例。
我是不是可以像下面这样做就得到该类的很多实例??
Single a=Single.getInstance();
Single b=Single.getInstance();
Single c=Single.getInstance();
Single d=Single.getInstance();
........
如果我可以创造出那么多实例,它还叫做单例类吗?
而单例模式的实现目的是某个类只能有一个实例,实现是通过private它的构造器,一般是提供一个getInstance方法得到它的实例。假设Single类是一个用单例模式实现的类,能通过getInstance方法得到它的唯一实例。
我是不是可以像下面这样做就得到该类的很多实例??
Single a=Single.getInstance();
Single b=Single.getInstance();
Single c=Single.getInstance();
Single d=Single.getInstance();
........
如果我可以创造出那么多实例,它还叫做单例类吗?
public class SingleTest { private static SingleTest ST = null;
private SingleTest() {} //私有化构造方法防止实例外部创建
public static getInstance() {
if (ST == null) ST = new SingleTest();
return ST;
}}
每次调用 getInstance() 返回的是同一个实例。
哈哈,你的a==b==c==d==e的.对象只有一个啊,只是有不同的引用指向他
要是不一样就不叫单例了
| a | ------------+
+-----+ |
|
+-----+ |
| b | ------------+
+-----+ | +------------+
+---->| Single |
+-----+ | +------------+
| c | ------------+
+-----+ |
|
+-----+ |
| d | ------------+
+-----+实际上单例模式产生对象的结构示意图就是这样的。a、b、c、d 引用的都是同一个对象。