【问题标题】:Usefulness of Toggle functions切换功能的用处
【发布时间】:2010-04-13 18:45:35
【问题描述】:

编写显式执行某些操作的函数是否更好(即 HideForm/ShowForm 等...)

还是写 'Toggle' 类型的函数更好(即 ToggleVisibility)?

我觉得 Toggle 类型的函数很尴尬,因为通过阅读代码很难跟踪状态。

在什么情况下切换类型函数有用?

【问题讨论】:

  • '切换类型功能在什么情况下有用?'切换类型不是布尔值吗?您是否将使用限制在 GUI 上?最后,我们不需要了解平台吗?
  • @Smandoli - 1.) 在某些情况下,它确实意味着布尔值。 - 2.) 不,这些功能可以在任何地方使用(例如 ToggleBit。) - 3.) 这些功能与平台无关。

标签: function toggle maintainability


【解决方案1】:

我有时在 JavaScript 中使用它来处理按钮(如复选框)和可见性,但大多数情况下我会避免使用它,因为它使控制您尝试处理的 think 的状态有点困难。

如果您不确定或无法确定初始状态,那可能会很糟糕(但通常可以)。无论如何,大多数情况下不需要运行一些“simetric”或简单的代码,所以我不会经常使用 .toogle

【讨论】:

    【解决方案2】:

    如果目标是可读性,则使用两个单独的函数。

    我们可以有:ShowXYZ()HideXYZ(),或 ToggleXYZ(bool show)。后者只会以ToggleXYZ(true)ToggleXYZ(false) 的形式出现在代码中,因此不太清楚每个代码的作用。将它们作为两个单独的函数放置,就不会猜测该函数应该做什么。

    我将稍微扩展您提出的问题,因为还有另一种选择。在有两个 或更多 状态的情况下,为了可扩展性,您可以利用您正在使用的语言(我在 C# 中给出示例,所以 YMMV)。

    因此,对于 C#,您可以创建一个 enum 来提供不同的状态并增加代码的可读性。你可以有类似的东西:

    SetXYZState(XYZState.Show)
    

    SetXYZState(XYZState.MakeWaffles)
    

    使用相同的函数签名时非常清楚。

    这可以应用于只有两种状态的情况(如果以后可能扩展它,甚至只有一种),但是设置它的开销可能比简单地编写两个函数要多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-27
      • 2017-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2014-11-17
      • 1970-01-01
      相关资源
      最近更新 更多