首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展类而不覆盖任何内容:不良实践?

扩展类而不覆盖任何内容:不良实践?
EN

Stack Overflow用户
提问于 2014-05-28 08:40:09
回答 6查看 1.2K关注 0票数 1

我要接手一个老项目。现在,我在自己的util类中有了一些类,覆盖了外部库的util类。例如:

代码语言:javascript
复制
public final class StringUtilsXXX extends org.apache.commons.lang3.StringUtils {
}

这些类根本不覆盖扩展类的任何方法(将来也永远不会)。我觉得令人困惑的是,大多数对自己实现的调用只是委托给超类。这做法不好吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-05-28 08:59:13

是。这是个糟糕的做法。其原因在于它将您自己的类紧密地连接到第三方库中。我相信你的前任之所以这么做,是因为如果有一天他需要替换commons,他只需要修改一段代码。他这么做可能是因为从lang2升级到lang3所带来的挫败感。

他应该这样做的,应该是创建一个StringUtil接口,并编写不同的实现(您可以使用lang2实现StringUtil,使用lang3,甚至可能是从头实现的备用实现。(如果您需要任何一个版本都不提供的字符串处理,或者需要用旧的Java版本编译某些版本,或者其他什么)。

票数 4
EN

Stack Overflow用户

发布于 2014-05-28 08:43:55

如果没有在子类中重写任何内容或添加任何数据或方法成员,则通常不需要。但是,对于未来的占位符,这可能会被使用。

票数 0
EN

Stack Overflow用户

发布于 2014-05-28 08:56:14

暂时不疼。但是,如果没有提供额外的行为,使用(拥有) StringUtils应该比扩展它更可取。

如果有一个可用于StringUtils的接口,并且您正在指向您的实现(使用它扩展类实例),那么从可维护性的角度来看,它仍然可能是有意义的(这同样取决于您如何实例化它)。

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

https://stackoverflow.com/questions/23906665

复制
相关文章

相似问题

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