Singleton 和 Monostate 都是用来实现单例模式的,但二者实现机制上有所不同。
Singleton 模式使用私有构造函数,一个静态变量以及一个静态方法对实例化进行控制和限制;而Monostate 则是简单的把对象的所有变量都编程静态的。
Monostate 模式实例:
public class Monostate
{
private static int x = 0;
public Monostate(){}
public void setX(int x){...}
public int getX(){...}
}
这样,对于Monostate 类,无论创建多少个实例对象,它们都表现的跟一个对象一样,它仅强调行为上的单一性。