为什么需要 单例设计模式(Singleton)?
像下面的一个单例
public class Singleton {
private static Singleton instance = null;
private Singleton(){};
public static synchronized Singleton getInstance(){
if(instance == null)
instance = new Singleton();
return instance;
}
public void doSomething(){
//do something
}
}
它要实现的主要目标,就是在一个应用中只维护一个Singleton实例
但一个类在一个应用中也是唯一的,为什么不能直接以类作为单例呢?
public final class AnotherSingleton{
private AnotherSingleton(){}
public static synchronized void doSomething(){
//do something
}
}
把类的所有方法都改为静态方法,
所有属性都改为静态属性(我们可以把
静态属性看成类的内部状态),
但是不允许实例化,
对类的操作相当于对单例的操作
而且类也可以维护内部状态(通过静态私有属性)
这完全满足了单例的要求。
不知道为什么需要单例模式。。。
因为我想不出来在什么情况下 单例可以满足需求
而 类 不能。
分享到:
相关推荐
C++完美实现Singleton模式
singleton是最常见的设计模式,但是要设计好却是不容易,尤其是多线程的时候,需要考虑线程安全的问题.
简单的单例模式举例Singleton 分为恶汉式 懒汉式
1、没有构造函数(DEFINE_SINGLETON_DEFAULT); 2、有构造函数,构造函数没有参数(DEFINE_SINGLETON_CONSTRUCT_NO_PARAM); 3、有构造函数,构造函数有没有参数版本(DEFINE_SINGLETON_CONSTRUCT_WITH_DEFAULT)...
Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,确保用户无法通过new直接实例化它。除此之外,该模式中包含一个静态私有成员变量instance与静态公有方法Instance()。Instance()...
单例模式 Singleton 单例模式线程安全问题和拓展
Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)
Singleton pattern单例模式应用
单例模式,Singleton两种代码实现。一般实现方法,泛型实现方法(推荐)
Laravel开发-singleton-pattern 帮助程序包来实现单例类。
用VC实现的singleton 模式 在VS03,VC6.0下编译通过
java singleton 不解释不解释不解释不解释
Android Singleton单例模式运用详解
singleton pattern 的定义 主要应用方法 优缺点 通过代码 具体分析解释
在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样有几个好处: 1、某些类创建比较频繁,对于一些大型的对象,这可以节省一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率...
"singleton单例模式1" 单例设计模式是软件设计模式中的一种,目的是确保某个类只能有一个实例,并提供一个全局的访问点来访问这个实例。 首先,单例模式的要点是:① 某个类只能有一个实例。构造器私有化。② 它...
设计模式-Singleton与Factory
此示例展示了Qml 的单例模式(类似全局对象,只生成一次实例,可全局使用) surfsky.cnblogs.com
单例模式(Singleton)