【问题标题】:Instance Methods vs. Class methods For a Helper Class - Ruby, Rails实例方法与帮助类的类方法 - Ruby,Rails
【发布时间】:2016-03-27 04:23:24
【问题描述】:

我正在开发一个rake task,它根据提交给外部数据库 (MS SQL) 的查询在本地数据库中创建新记录。连接、查询和记录创建发生在我创建的名为ExternalDatabaseConnector 的助手中。 Rake 任务只是调用方法并以controller 的方式运行。

我的问题是我的助手类中的方法(我有 establish_connectionexecute_querycreate_hashstore_records)是否应该在 self 上调用(即是类方法)还是每个都在一个我的助手的实例?

我认为只有一个连接,并且 rake 任务只会按其时间表触发一次,并且不需要创建我的助手类的单独实例?

【问题讨论】:

    标签: ruby-on-rails ruby design-patterns


    【解决方案1】:

    如果您不需要自定义每个实例的状态 (通过initialize 和实例变量),创建类方法是有意义的 反而。如果您要使用类方法,则可以将 Class 设为 Module 会产生同样的效果。

    如果您在编程时使用纯函数范式,则不会 永远使用实例方法。相反,您会将所有需要的数据作为 论据。我不推荐这种方法,因为 OOP 只是做事 在许多情况下更容易,但是对于这种情况,类方法对我来说很有意义。 函数式编程很有用(mapreduceproc shorthand 等方法), 但我看不出有任何理由使用它代替 OOP。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2011-11-10
      • 1970-01-01
      相关资源
      最近更新 更多