在编程时,有许多指标表明耦合是不好的。一个类应该尽可能少地了解其他类。因此,它是模块化的,可以很容易地更换。
现在,随着密封类的引入,抽象超类知道了它的子类。据我所知,子类通常与它们的密封接口位于同一个包(甚至是同一个文件)中。因此,不应该存在包之间循环依赖的问题。
所以我想我要问的是:一个密封的接口及其子类是否应该被看作是one单元,而不是相互依赖的模块部件?
子类位于包之外的示例:
import asdf.Car;
import asdf.Truck;
public sealed interface Service permits Car, Truck {要触发满意的选民:一个密封接口的实现者不可能存在于接口模块之外,所以答案是非常简单和枯燥的。一点意见都没有。以下是您可能感兴趣的Brian的评论:Sealed classes for classes in different packages
我已经得到了答案,所以我不在乎别人是否能回答。祝您今天愉快!
发布于 2021-08-07 09:43:18
继承总是类型之间的强耦合;因此,通常您应该遵循
偏好组合而非继承
在使用继承时,大多数情况都可以通过组合和依赖注入来解决。
在一个模块中保持子类接近基类是一个很好的实践,不建议这样做。您不希望在不相关的包或模块之间有很强的耦合。
我说的每句话都有例外。您可能希望创建一个抽象类库,使项目中的开发人员能够在不重复实用程序代码的情况下进行扩展。F.ex java集合和抽象集合类。。
https://stackoverflow.com/questions/68690985
复制相似问题