首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java密封类与耦合

Java密封类与耦合
EN

Stack Overflow用户
提问于 2021-08-07 09:14:54
回答 1查看 225关注 0票数 0

在编程时,有许多指标表明耦合是不好的。一个类应该尽可能少地了解其他类。因此,它是模块化的,可以很容易地更换。

现在,随着密封类的引入,抽象超类知道了它的子类。据我所知,子类通常与它们的密封接口位于同一个包(甚至是同一个文件)中。因此,不应该存在包之间循环依赖的问题。

所以我想我要问的是:一个密封的接口及其子类是否应该被看作是one单元,而不是相互依赖的模块部件?

子类位于包之外的示例:

代码语言:javascript
复制
import asdf.Car;
import asdf.Truck;

public sealed interface Service permits Car, Truck {

要触发满意的选民:一个密封接口的实现者不可能存在于接口模块之外,所以答案是非常简单和枯燥的。一点意见都没有。以下是您可能感兴趣的Brian的评论:Sealed classes for classes in different packages

我已经得到了答案,所以我不在乎别人是否能回答。祝您今天愉快!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-07 09:43:18

继承总是类型之间的强耦合;因此,通常您应该遵循

偏好组合而非继承

在使用继承时,大多数情况都可以通过组合和依赖注入来解决。

在一个模块中保持子类接近基类是一个很好的实践,不建议这样做。您不希望在不相关的包或模块之间有很强的耦合。

我说的每句话都有例外。您可能希望创建一个抽象类库,使项目中的开发人员能够在不重复实用程序代码的情况下进行扩展。F.ex java集合和抽象集合类。。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68690985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档