gpt4 book ai didi

java - 是否可以避免使用 libgdx 的适配器类?

转载 作者:行者123 更新时间:2023-11-30 10:12:36 25 4
gpt4 key购买 nike

您好!

我是一名初级程序员,目前正在学习 Java 语言和 libgdx API。今天,我一直在研究接口(interface) 及其用法。为了更好地理解该主题,我查找了 libgdx 的接口(interface)及其一些实现。我发现有一些称为“适配器”的抽象类基本上实现了一个接口(interface),这使得希望使用该接口(interface)的用户更方便地扩展适配器类,以避免必须从接口(interface)(参见 ApplicationAdapterScreenAdapterInputAdapter)。

我的问题是:由于 JDK 8 引入了默认方法实现,现在不需要 libgdx 的适配器类了吗? 如果这些适配器实现的接口(interface)中的方法有默认实现(甚至可能是一个空体),那么就没有理由使用适配器。

请注意,我问这个问题绝不是想批评 libgdx 的开发者。我也知道 libgdx 是在 Java 允许默认方法实现之前开发的。我只是一个试图更好地理解接口(interface)以及如何正确使用它们的初学者。谢谢!

最佳答案

见仁见智

是的,使用 Java 8 的默认接口(interface)方法,适配器类实现的便利性可以直接包含在接口(interface)中。

但是 libGDX 的作者也可以排除所有接口(interface)而只使用适配器类。或者他们可以将适配器类抽象为所有方法的具体实现。

因为适配器类只是为了方便(例如,请参阅 ScreenAdapter javadoc:

convenience implementation of {@link Screen}. Derive from this and only override what you need.

), 有很多方法可以达到同样的效果。我认为添加接口(interface)的默认方法主要是为了能够在不破坏现有实现的情况下使用更多方法扩展接口(interface)。看下面,来自Interface Default Methods :

Default methods enable you to add new functionality to the interfaces of your libraries and ensure binary compatibility with code written for older versions of those interfaces.

但是,它们也可以用来提供便利的方法。

关于java - 是否可以避免使用 libgdx 的适配器类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51813908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com