【问题标题】:Ruby: Benefits of putting my code inside a Module? [closed]Ruby:将代码放入模块的好处? [关闭]
【发布时间】:2022-01-18 09:06:22
【问题描述】:

将我的所有方法都放在一个模块中有什么好处?

module Math
  def Math.print_message
    puts "Testing 123 ..."
  end
end

如果我只是在文件中写入“print_message”,然后从另一个文件中请求该文件,那么我也可以调用“print_message”。

在这个模块端结构中使用它有什么好处?

【问题讨论】:

  • 它允许您组织代码(将所有与数学相关的方法分组到一个模块中)并命名您的方法(这样您就可以毫无问题地拥有Math.logLogger.log)。
  • @Stefan 有道理。如果您喜欢:将您的评论变成答案。我会接受的。

标签: ruby


【解决方案1】:

Ruby Module 可以为您做的一些事情

在许多方面,模块的行为很像类,尽管您实际上无法实例化它们。将代码、类和其他对象放在模块中的原因有很多。其中包括:

  1. 命名空间,防止同名常量、类、方法和变量之间发生冲突。
  2. 组合或扩展类的能力,而不是通过“混入”模块来依赖 Ruby 的单一继承模型。这就是为什么 Ruby 中的模块通常被称为 mixins。
  3. 能够定义无需实例化即可使用的类和模块级方法。
  4. 当您将模块与其他类混合时,挂钩包含模块以创建特定行为的能力。
  5. 支持autoloading
  6. 能够根据您是包含模块还是 prepend 模块来调整类层次结构的查找顺序。
  7. 支持优化(请参阅Module#refineModule#using)。

在这个快速、即兴的答案中,我可能还没有考虑到其他事情。但是,模块是 gem 和更大的 Ruby 应用程序必不可少的构建块,理解它们是值得的,特别是如果您计划超越使用 Ruby 编写基本脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多