我已经编写了一些类和模块,我可以使用require/require_relative
在我的ruby脚本中包含这些类和模块。
我们应该包括我们的脚本;课程或模块?一个人比另一个人有一些好处吗?
原谅我对这个话题的无知。可能这个问题很愚蠢。我只想在正确的方向上推进我的工作。提前感谢您的意见/建议。
答案 0 :(得分:2)
模块和类有很多共同之处。您可能知道的模块无法实现,但类可以。那么模块的最佳用途是什么?何时使用它们?嗯,最简单的答案是,如果你有多个共享常用方法的类。最好的做法和最明智的做法是在类之间编写一个包含这些常用方法的模块,并在这些类中包含要使用这些模块的模块"常用方法"。否则,如果你只有一个课程,那么为课程创建一个模块并没有多大意义。您也可以在类本身中创建这些方法,并完全忘记模块。除非你有类似的方法,你想将它们组合成模块只是为了组织和保持你的代码最小化以及稍后重构(当需要到来时)。
同样的课程。如果您在脚本中组织了许多不同的类,则可以要求您的类。如果你有很多课程,那就更有意义了。
我希望这能回答你的问题。
答案 1 :(得分:1)
我建议使用require_relative
来使用load_path
中可能无法使用的任何脚本。因此,将它用于特定于当前工作目录的所有脚本。另一方面,require
往往会查看load_path
,如果您为文件指定了冲突名称,它可能会加载同名的可用gem
。因此,我建议始终将require_relative
用于项目中的特定文件/目录。
编辑:
Modules or Classes
:在我看来,Modules
比课程更好,因为Classes
实际上是Modules
。此外,Modules
对于此类要求最为常见。