# 1 楼答案 每个类都可以实现一个接口,Singleton只是一个“普通”类,它确保在任何时间点,除了它可能实现的其他业务逻辑之外,只存在它的一个实例。 这也意味着一个单件至少有两个职责,这不是一个好的OO设计,因为类应该只有一个职责,并确保它们擅长这个职责,但这是另一个讨论
# 3 楼答案 比如: public interface MyInterface { } 及 public class MySingleton implements MyInterface { private static MyInterface instance = new MySingleton(); private MySingleton() { } public static MyInterface getInstance() { return instance; } }
# 4 楼答案 我想我理解你的问题。您想在接口中定义工厂方法(getInstance()的静态方法)。但由于工厂方法不能在接口中定义,所以这种逻辑将不起作用 一种选择是使用一个工厂类来保存该静态方法。所以会有三节课 第一类保持静态的方法 其次是界面 三是具体类 但我们不能将具体的构造函数私有化 但是如果你的基础设施有两个包,一个是公共包,另一个是私人包 公开定义接口,使具体的类包级别(不带任何访问修饰符)以及工厂类和静态方法公开 我希望这能帮助你
# 5 楼答案 基本上,单例类是一个只能实例化一次的类。 singleton类模式是通过使用静态方法获取singleton类的实例并限制对其构造函数的访问来实现的 与接口的使用一样,它将类似于任何其他类实现接口的方式 而且它不应该允许克隆这个物体
# 1 楼答案
每个类都可以实现一个接口,Singleton只是一个“普通”类,它确保在任何时间点,除了它可能实现的其他业务逻辑之外,只存在它的一个实例。 这也意味着一个单件至少有两个职责,这不是一个好的OO设计,因为类应该只有一个职责,并确保它们擅长这个职责,但这是另一个讨论
# 2 楼答案
一个单身汉有一个实例——它只是从来没有超过一个实例。您可能会使用几个静态成员来获取引用,并确保它永远不会获得多个实例,但在大多数情况下,该类与任何其他类相同
# 3 楼答案
比如:
及
# 4 楼答案
我想我理解你的问题。您想在接口中定义工厂方法(getInstance()的静态方法)。但由于工厂方法不能在接口中定义,所以这种逻辑将不起作用
一种选择是使用一个工厂类来保存该静态方法。所以会有三节课 第一类保持静态的方法 其次是界面 三是具体类
但我们不能将具体的构造函数私有化
但是如果你的基础设施有两个包,一个是公共包,另一个是私人包
公开定义接口,使具体的类包级别(不带任何访问修饰符)以及工厂类和静态方法公开
我希望这能帮助你
# 5 楼答案
基本上,单例类是一个只能实例化一次的类。 singleton类模式是通过使用静态方法获取singleton类的实例并限制对其构造函数的访问来实现的
与接口的使用一样,它将类似于任何其他类实现接口的方式
而且它不应该允许克隆这个物体