【问题标题】:Best Practices Using Global Variables or Passing Method Arguments to Method Variables?使用全局变量或将方法参数传递给方法变量的最佳实践?
【发布时间】:2012-02-10 22:06:27
【问题描述】:

在过去的几个月里,我一直专注于清理我的代码以提高可读性。随着我的应用程序变得越来越大,掌握我的变量、类、方法等至关重要。

话虽如此,我经常质疑我创建全局变量而不是传递方法参数并创建方法变量的决定。我发现创建本地方法变量通过“隐藏开销”来清理我的代码的其余部分,但是,我发现必须跟踪和理解传递方法参数的流程是一种权衡。

最终,我相信最佳实践归结为通过在尽可能低的级别初始化变量来创建最小的开销,本质上是:

  • 只应在多个方法中需要变量的情况下使用全局变量。
  • 应该使用方法参数和方法变量,其中变量仅在所述方法中是必需的,因此是所述方法的本地变量。

这是处理全局变量与方法变量的简单逻辑方法吗?对此思路的任何建议将不胜感激。随着我的代码开始发展成数百种方法,我需要更加小心地以最合乎逻辑的方式创建变量。

感谢您的建议!

【问题讨论】:

    标签: android variables methods global-variables scope


    【解决方案1】:

    在我所知道的大多数编程语言中,使用全局变量被认为是不好的编程习惯。您应该尽可能使用参数。如果您需要singleton 模式之类的东西。

    【讨论】:

      【解决方案2】:

      如果你想存储一些全局的东西,你应该扩展 Application 类,它是 Android 中的某种会话。在这个类中,您可以存储全局的所有内容。

      并且不要使用单例,这在 Android 中是一种不好的做法,请使用 Application 类。

      【讨论】:

        【解决方案3】:

        这不是一个简单几句话就能回答的问题。使用全局变量是一种不好的做法。它会导致代码紧密耦合,并且很难修改或增强。对大量全局变量的需求是您需要专注于设计的指标。

        您提到您的代码有数百种方法。你有几节课?如果你在一个类中有数百个方法,那么这个类的职责就太多了。您的设计应侧重于具有明确职责的类。每个类应该只拥有处理这些职责所需的数据。这反过来又会导致全局变量数量的减少。如果数据显然是一个类的责任,那么它不应该是全局的并且可以被其他类访问。​​

        【讨论】:

        • 我理解你的回答,但是我的全局变量代表我数据库中的字段。我选择使用全局变量,而不是对字段进行硬编码,因为有时我更改了字段的名称,并且浏览所有代码并对其进行修改会很痛苦。您是否建议使用不同的路径来存储我的表字段名称?
        • 你可以简单地为字段名称做一些定义,然后在你的所有代码中使用它们。如果有时您必须更改字段的名称,您只需更改一个定义
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-26
        • 2012-07-12
        • 2016-04-20
        • 2015-04-21
        • 1970-01-01
        • 2012-07-27
        相关资源
        最近更新 更多