gpt4 book ai didi

java - 我如何组织和减少申请中的类(class)数量

转载 作者:行者123 更新时间:2023-12-02 09:50:29 25 4
gpt4 key购买 nike

我想这更像是一个设计模式问题而不是编码问题。那么我们开始吧...我有一个包含许多类和 Activity 的 Android 应用程序。我根据其功能在目录内分组了类,例如:AsyncTask 目录内的 DownloadTask、ScanTask。然后我拥有 Activity 目录中的所有 Activity 等等。但我注意到我的很多代码都是重复的。例如,我有 3 个 Activity PingActivity、NetstatActivity、WhoisActivity,从代码的角度来看,它们基本上看起来完全相同。唯一的区别是它们使用的命令,例如:用于 PingActivity 的 ping host,用于 NetstatActivity 的 netstat -ant 等等。它们都从看起来非常相似的 xml 布局实例化 View ,因为我拥有的只是 EditText、按钮和 TextView。并且类调用 AsyncTask 来执行独立于主线程的后台进程。但 WhoisActivity 除外,它使用 REST API 服务来查询域名。所以我的问题是如何简化我的设计?我可以使用一个类并根据用户选择的菜单选项传递命令或 api 吗?我怎样才能做到这一点?谢谢

最佳答案

只是一些建议,以我的拙见...

  • 减少类(class)数量本身不应该成为一个目标。
  • 看起来相同的多段代码实际上可能在逻辑上执行不同的操作,并且将来可能以非常不同的方式演变 ( DRY is about knowledge, not code )。
  • 始终使用 SOLID 进行设计请记住,当您说“我可以使用一个类并传递命令或 api”时,这对于单一职责和开闭原则来说听起来更糟糕。

话虽如此,如果有一些代码看起来(并且实际上)相同,请尝试将它们分解到注入(inject)类中的服务中。只是不要尝试通过将所有看起来相似的代码放在带有一些参数和一些 if-else/switch block 的类/方法中来降低复杂性,因为从长远来看,这通常比拥有很多小而有组织的类(class)。

关于java - 我如何组织和减少申请中的类(class)数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56350039/

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