编程时,有很多指标表明耦合不好。一个类应该尽可能少地了解其他类。所以它是模块化的,可以很容易地更换。
现在,随着密封类的引入,抽象超类知道了它的子类。据我了解,子类通常与其密封接口位于同一个包(甚至同一个文件)中。所以应该不存在包之间循环依赖的问题。
所以我想我要问的是:密封接口及其子类是否应该被视为一个单元,而不是相互依赖的模块化部分?
子类在包外的示例:
import asdf.Car;
import asdf.Truck;
public sealed interface Service permits Car, Truck {
触发快乐的近距离投票者:密封接口的实现者不能存在于接口模块之外,因此答案非常简单。完全不是基于意见的。这是您可能感兴趣的 Brian Goetz 的评论:Sealed classes for classes in different packages
虽然我已经得到了答案,所以我真的不在乎是否没有其他人可以回答。祝你今天过得愉快!