gpt4 book ai didi

java - Android 最佳实践 - 重构一个大的 Activity 类

转载 作者:行者123 更新时间:2023-12-01 11:17:41 25 4
gpt4 key购买 nike

希望将 Google map Activity 类重构为更易于维护的东西。

目前它实现了以下接口(interface):

LocationListenerGoogleApiClient.ConnectionCallbacksGoogleApiClient.OnConnectionFailedListenerAdapterView.OnItemClickListener

除此之外,它还包含相当多的辅助方法。

我有一些与执行此操作的最佳方法相关的问题。

  1. 我应该创建静态帮助器类并将监听器实现保留在 Activity 类中吗?

  2. 我应该创建辅助类并创建它们的实例,将我需要的一切传递给它们的构造函数吗?例如上下文。

  3. 我应该抽象我的 Activity 类并在其自己的类中单独实现每个监听器吗?

提前致谢。在我的技术债务进一步增加之前,我希望遵循某种 Android/Java 标准。

最佳答案

答案取决于您打算如何在应用中使用Activity

  1. 我应该创建静态帮助器类并将监听器实现保留在 Activity 类中吗?
    答案:如果您打算仅在应用中的 1 个位置使用 Activity,并且不需要在应用的不同部分重用该 Activity,则此方法非常有效。应用程序。原因是您必须使辅助函数非常灵活(很多 if),以便能够在相同的 Activity 中但在不同的情况和场景中重用这些函数。与此相反,请参阅选项 3。

  2. 我应该创建辅助类并创建它们的实例,将我需要的一切传递给它们的构造函数吗?例如上下文。
    答案:这可能是更复杂的路线,但在 map 中启用/禁用功能方面将为您提供最大的灵 active 。假设您希望 map 只做两件事。您可以创建一个新的 Activity 并调用 2 个辅助函数,将这 2 个功能添加到 map 中。在应用程序的另一部分,您可以调用更多辅助函数来添加更多功能。这也将使 map 的使用更加统一,因为所有功能都是通过完全相同的辅助函数调用添加的。

  3. 我应该抽象我的 Activity 类并在其自己的类中单独实现每个监听器吗?
    答案:如果您打算在应用的不同部分重复使用完全相同的 Activity,则应使用此方法。假设您想要在“关于”部分以及应用程序的各个部分显示 map 。显示的所有 map 都具有完全相同的功能并且以完全相同的方式工作。 (为了增加一点灵 active ,您应该创建一个实现了所有监听器的 Abstract Fragment。这样您就可以轻松地在应用的任何部分重用 Fragment,只需添加 fragment 。)

    我个人会结合使用选项 2 和选项 3,因为这样您就可以将 Fragments 添加到应用程序中的任何位置,无论您希望实现哪种功能。

关于java - Android 最佳实践 - 重构一个大的 Activity 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31608933/

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