实例方法与类方法对于Helper类--Ruby,Rails

时间:2016-03-26 19:28:13

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

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您不需要自定义每个实例的状态 (通过initialize和实例变量),制作类方法是有意义的 代替。如果您使用课程方法,可以将Class设为a Module它会产生同样的效果。

如果你在编程时使用纯粹的功能范例,你就不会 曾经使用过实例方法。相反,您将所有需要的数据传递给 参数。我不推荐这种方法,因为OOP只是制造东西 在许多情况下更容易,但对于这种情况,类方法对我有意义。 函数式编程很有用(mapreduceproc shorthand等方法, 但我认为没有任何理由使用它来代替的OOP。