我在很多地方读到过单例模式可以使用接口,但我无法理解。
每个类都可以实现接口,而Singleton只是一个“普通”的类,它确保在任何时候只存在一个实例,除了其他可能实现的业务逻辑。 这也意味着Singleton至少有两个职责,这不是良好的面向对象设计,因为类应该只有一个职责并确保他们擅长处理这种职责,但这是另一个讨论话题。
类似于:
public interface MyInterface
{
}
并且
public class MySingleton implements MyInterface
{
private static MyInterface instance = new MySingleton();
private MySingleton()
{
}
public static MyInterface getInstance()
{
return instance;
}
}
基本上,单例类是一种只能实例化一次的类。
通过使用静态方法获取单例类的实例并限制对其构造函数的访问来实现单例类模式。
与使用接口的用法类似,它类似于任何其他类实现接口的方式。
同时,它也不应该允许克隆该对象。