我使用Java作为样本。让我们说我正在开发一个软件而且我有这个
CustomList extends ArrayList<ObjectMapper>
现在,它已将自定义函数添加到ArrayList。它专门设计用于满足ObjectMapper实例的列表(可能是JsonNode,TreeNode;属于jackson依赖)。现在整个项目都利用了这个。但是有人提到了这一点:&#34;如果ArrayList在将来被弃用或过时怎么办?&#34;如果确实发生了这种情况,我们必须重写或修改整个源代码。所以他们称之为Bad Design
。我怎么能避免这个?我应该创建一个实现List的接口OurList
,并将其实现为OurArrayList
,这将是我们将要使用的内容吗?请解释如何正确完成。假设我希望能够使用ArrayList&#39; iterate
方法。在不影响项目代码可维护性的情况下,最好的方法是什么?
答案 0 :(得分:3)
你太担心了,因为ArrayList
很可能不会很快被弃用。
即使已弃用,也不要将其视为您的代码会破坏的承诺。
您可能听过“自我贬低的幽默”一词,或者说说话者的重要性最小化的幽默
不推荐使用的类或方法就是这样。 不再重要。事实上,你不应该再使用它,因为它已被取代而且可能将来不再存在。
如果您的担忧源于过时,您应该更多地关注要求和满足需求。事情变得过时,这是不可避免的,不要让它困扰你。 ArrayList
被弃用不应该担心,除非因为严重问题而被弃用。
您是否担心Thread
被弃用? Vector
引用受欢迎,直到它被弃用。你仍然可以看到它,因为它不会被删除以允许源向后兼容。
如果你投入修改代码主要是为了保持“跟上潮流”,而不是把时间花在当前的问题上,你就会浪费时间。担心ArrayList
被弃用可能会让您分散项目可能存在的其他潜在问题。
答案 1 :(得分:0)
我几乎可以肯定ArrayList永远不会被弃用。它使用得太广泛了。但是,如果您确定要这样做,请使用CustomList实现List