繁体   English   中英

将类添加到第三方依赖项/程序包是不好的做法吗? (java)

[英]Is it bad practice to add a class to a third party dependency/package? (java)

我有一个来自第三方依赖项的交互客户端,需要使用我提供的服务。 有些行为不适合我的用例,我想尝试扩展或只是为其重写适配器,但是我需要的许多方法或变量都受到了保护。 我应该只编写一个属于该软件包的类来访问那些类吗? 我从来没有听过它明确声明不这样做,但是这似乎挫败了首先拥有一个软件包的目的。

我会说这是一个非常糟糕的主意。 您绝不应该以任何方式修改第三方JAR。 您最好考虑将它们密封。

原因有两个:

  1. 您可能会破坏依赖性代码。
  2. 修改第3方JAR的那一刻,您必须以相同的方式修改每个更新。

您可以自由扩展第三方类,只要它没有被标记为final 但这将成为代码的一部分。 您可以随时使用该第三方JAR的新版本。

如果方法和变量受保护,则可以使用自己的实现扩展该类。 子类能够访问父类的受保护变量和属性。

您的实现无需位于同一软件包中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM