单例类如何使用接口?

2022-09-05 00:17:30

我在很多地方读到单例可以使用接口。有些我无法理解这一点。


答案 1

每个类都可以实现一个接口,而 Singleton 只是一个“普通”类,它确保除了它可能实现的其他业务逻辑之外,在任何时候都只存在一个实例。这也意味着一个单例至少有2个责任,这不是好的OO设计,因为类应该只有1个责任,并确保他们擅长这个责任,但这是另一个讨论。


答案 2

像这样:

public interface MyInterface 
{
}

public class MySingleton implements MyInterface
{
  private static MyInterface instance = new MySingleton();

  private MySingleton() 
  {
  } 

  public static MyInterface getInstance()
  {
    return instance;
  }
}