我正在研究rake task
,它根据提交给外部数据库(MS SQL
)的查询在本地数据库中创建新记录。连接,查询和记录创建发生在我创建的名为ExternalDatabaseConnector
的帮助程序中。 Rake任务只调用方法并以controller
排序运行。
我的问题是我的帮助类(我有establish_connection
,execute_query
,create_hash
和store_records
)中的方法是否应该在self
上调用(即是类方法)还是每个都在我的助手的实例上调用?
我认为只有一个连接,rake任务只会按其计划触发一次,并且不需要创建我的帮助类的单独实例?
答案 0 :(得分:1)
如果您不需要自定义每个实例的状态
(通过initialize
和实例变量),制作类方法是有意义的
代替。如果您使用课程方法,可以将Class
设为a
Module
它会产生同样的效果。
如果你在编程时使用纯粹的功能范例,你就不会
曾经使用过实例方法。相反,您将所有需要的数据传递给
参数。我不推荐这种方法,因为OOP只是制造东西
在许多情况下更容易,但对于这种情况,类方法对我有意义。
函数式编程很有用(map
,reduce
或proc shorthand等方法,
但我认为没有任何理由使用它来代替的OOP。