有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (5) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    一个单身汉有一个实例——它只是从来没有超过一个实例。您可能会使用几个静态成员来获取引用,并确保它永远不会获得多个实例,但在大多数情况下,该类与任何其他类相同

  3. # 3 楼答案

    比如:

    public interface MyInterface 
    {
    }
    

    public class MySingleton implements MyInterface
    {
      private static MyInterface instance = new MySingleton();
    
      private MySingleton() 
      {
      } 
    
      public static MyInterface getInstance()
      {
        return instance;
      }
    }
    
  4. # 4 楼答案

    我想我理解你的问题。您想在接口中定义工厂方法(getInstance()的静态方法)。但由于工厂方法不能在接口中定义,所以这种逻辑将不起作用

    一种选择是使用一个工厂类来保存该静态方法。所以会有三节课 第一类保持静态的方法 其次是界面 三是具体类

    但我们不能将具体的构造函数私有化

    但是如果你的基础设施有两个包,一个是公共包,另一个是私人包

    公开定义接口,使具体的类包级别(不带任何访问修饰符)以及工厂类和静态方法公开

    我希望这能帮助你

  5. # 5 楼答案

    基本上,单例类是一个只能实例化一次的类。 singleton类模式是通过使用静态方法获取singleton类的实例并限制对其构造函数的访问来实现的

    与接口的使用一样,它将类似于任何其他类实现接口的方式

    而且它不应该允许克隆这个物体