首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >默认情况下,在SDK中,推荐设置为最终类吗?

默认情况下,在SDK中,推荐设置为最终类吗?
EN

Software Engineering用户
提问于 2019-10-10 14:51:41
回答 2查看 178关注 0票数 3

我正在用Java开发Android中的SDK,通常用户不需要继承SDK的任何类,所以问题是,在默认情况下,在SDK类中将所有类作为最终类是否是一个良好的实践?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2019-10-10 15:22:41

通常,除非您专门将类设计为可继承,否则最好将它们标记为final

原因如下:你无法预测别人会如何使用你的课程。如果允许继承,客户端可能会以意想不到的方式使用它们(或破坏它们)。如果没有专门设计要继承的类,则在更新类时可能会破坏它们的代码。

将类保持未密封意味着继承该类的人有权访问其内部。实际上,这些内部组件成为您的公共API的一部分。因此,如果您想要控制您的API表面,类必须是final

Eric提供了主题这里的详细处理。

票数 8
EN

Software Engineering用户

发布于 2019-10-10 15:59:28

如果另一个开发人员可以将您的类从final更改为非决赛,那么将其标记为final并不意味着“不能被子类化”,这意味着“我没有给出它是否可以或应该被子类化的问题”,如果您对它进行子类化,那么它完全是您的责任“。

如果是这样的话,那就做最后的决定。

如果其他开发人员无法修改您的类,那么final将阻止子类的生成。只有当子类必须被阻止时,才使它成为最终的。

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

https://softwareengineering.stackexchange.com/questions/399552

复制
相关文章

相似问题

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