所谓多例模式,实际上就是单例模式的自然推广,单例类一般情况下只可以有一个实例,但单例类也可以推广到允许有限个实例,这种模式就是多例模式。作为对象的创建模式,多例模式有以下特点:
多例类可以有多个实例。
多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。
多例类分为有上限多例类与无上限多例类。
一个有上限的多例类已经把实例的上限当作逻辑的一部分,并建造到了多例类的内部。如下:
public class Multiton
{
private static Multiton instance1=null;
private static Multiton instance2=null;
private Multiton() { }
public static Multiton getInstance(int whichOne)
{
if(whichOne==1)
{
if(instance1==null)
{
instance1=new Multiton ();
}
return instance1;
}
else
{
if(instance2==null)
{
instance2=new Multiton ();
}
return instance2;
}
}
}
多例类的实例数目不需要有上限,实例数目没有上限的多例模式就叫做无上限多例模式。
多例类可以有多个实例。
多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。
多例类分为有上限多例类与无上限多例类。
一个有上限的多例类已经把实例的上限当作逻辑的一部分,并建造到了多例类的内部。如下:
public class Multiton
{
private static Multiton instance1=null;
private static Multiton instance2=null;
private Multiton() { }
public static Multiton getInstance(int whichOne)
{
if(whichOne==1)
{
if(instance1==null)
{
instance1=new Multiton ();
}
return instance1;
}
else
{
if(instance2==null)
{
instance2=new Multiton ();
}
return instance2;
}
}
}
多例类的实例数目不需要有上限,实例数目没有上限的多例模式就叫做无上限多例模式。