有时,由于集合,我会遇到一个类的单个实例就足够的情况。一个例子是我的解码器类:
public class Decoder
{
private static final Decoder instance = new Decoder();
private final HashMap<Client, State> states = new HashMap<Client, State>();
private Decoder()
{
}
public Packet decode(Client client, ByteBuffer data)
{
return null;
}
}
但我在想,为什么不让它看起来像:
public class Decoder
{
private static final HashMap<Client, State> states = new HashMap<Client, State>();
public static Packet decode(Client client, ByteBuffer data)
{
return null;
}
}
两种设计都有效地完成了同样的事情。两者有什么实际区别吗?我什么时候会使用其中一个?谢谢。