ruby - 如何识别Ruby软件必要的类和模块?

标签 ruby

假设我正在编写一个 Ruby gem。我想设计将要使用的类和模块。

  1. 如何识别它们?
  2. 哪里需要类,哪里需要模块?

最佳答案

您的问题是关于 Ruby 语言的主要设计特征之一。

基本上,您可以将模块视为工具的集合,将类视为能够与这些工具混合的对象的集合。

Ruby faq说到模块:

Modules are collections of methods and constants. They cannot generate instances.

当你想提供一些东西时,你需要一个类。你可以做一个 MyClass.new,你不能用一个模块:MyModule.new 不会工作。

另一方面:

Classes may generate instances (objects), and have per-instance state (instance variables).

当您想提供一种做某事的方法时,您将需要一个模块。您可以执行 MyModule.doSomething(SomeParams)。您也可以使用类方法来做到这一点,但您将无法使用它进行一些混合。

参见 this faq以获得更详细的答案。

关于ruby - 如何识别Ruby软件必要的类和模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079861/

相关文章:

ruby-on-rails - 如何在 Rails 4 中合并(链接)2 个不同表上的关系

ruby - 如何忽略sass中的多行注释?

ruby - 如何创建一个程序来接受用户的十个数字?

ruby-on-rails - 为什么设计不在登录页面上显示身份验证错误?

ruby - 卸载工头

ruby-on-rails - Rails - 设置 TinyMCE Rails gem 后,文本区域框重新调整大小问题

ruby-on-rails - 通过 users_controller.rb 中的代码修改用户的数据库

ruby-on-rails - 如何在 heroku worker 中捕获内存配额异常

ruby - 使用 Koala (Ruby) 收集用户的新闻提要

ruby - 无法理解如何索引数组项