【问题标题】:Ruby Best Practice For Storing Collection of Procs存储 Procs 集合的 Ruby 最佳实践
【发布时间】:2015-05-19 00:38:38
【问题描述】:

我正在为我的应用程序编写回归测试,并使用 Page 类。每个页面都有一个nav_to方法,需要在实例初始化时用proc设置。

我目前在全球范围内有 40 个一些 proc 的列表,对我来说这似乎很草率。存储这些过程的最佳实践是什么?我应该将它们存储在一个模块中吗?哈希?班级?请帮忙!

【问题讨论】:

  • 请发布您目前拥有的代码。

标签: ruby


【解决方案1】:

考虑将它们存储在模块(或类)常量中,以便可以清楚地对它们进行分组和命名。您选择的数据结构(数组 vs 散列)可能主要取决于您想要的接口(它们是与某些键相关联还是简单排序?)和性能问题(如果相关):

module MyTests # ...or "class"

  NAV_TO_PROCS = [
    Proc.new { ... },
    Proc.new { ... },
  ]

  # ... or ...

  NAV_TO_BY_PAGE_NAME = {
    "page1" => Proc.new { ... },
    "page2" => Proc.new { ... },
  }

end

顺便说一句,在使用模块常量时,我​​喜欢“冻结”它们以避免在使用过程中发生意外突变(例如NAV_TO_PROCS = [...].freeze)。

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 2010-09-06
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多