gpt4 book ai didi

java - OOD 和将 Activity 作为参数传递给其他类的构造函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:37 24 4
gpt4 key购买 nike

到目前为止,为了实现某些功能目标,我一直在将应用程序的主要 Activity 对象作为参数传递给其他类的构造函数,然后将其存储为私有(private)变量。

我这样做,不是因为我需要访问整个 Activity ,而是因为我需要访问:

  1. 成员(数据或 Activity 的方法)
  2. 尚未初始化的数据成员当时那些 build 者是打电话。

它有效,但我一直觉得我在正确的 OOD 方面做了一些根本性的错误。

特别是关于第 1 点:

  1. 非常“私密”的成员Activity 本质上变成了一个池子全局变量困惑。
  2. 此外,那些其他类是为了模块化,现在依赖于 Activity 类的知识,这让他们不是真的可在此应用程序外重复使用...

由于这些原因,我尽量避免将 Activity 作为参数传递给构造函数,但在 Android 开发环境中,我发现这样做比较困难,原因我还没有完全理解。

我的问题:

  1. 是否有推荐的“规则拇指”,可以帮助避免这种情况走“捷径”的陷阱将 Activity 作为参数传递?
  2. 是否存在通过作为参数的 Activity 是概念上合理吗?

最佳答案

一般来说,您应该避免保留对 Activity 的引用。如果您确实需要,请为您的 Activity 存储一个 WeakReference。这是为了避免内存泄漏。

如您所说,通过传递对 Activity 的引用,您在其他对象和您的 Activity 类之间引入了依赖关系。提供一些示例代码,以便我们可以举例说明如何重构它。

关于java - OOD 和将 Activity 作为参数传递给其他类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858162/

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