2016-03-26 11 views
1

私は外部データベース(MS SQL)に送信されたクエリに基づいて、ローカルデータベースに新しいレコードを作成するに取り組んでいます。接続、クエリ、レコードの作成は、ExternalDatabaseConnectorというヘルパーで行われます。レイクタスクは単にメソッドを呼び出し、並べ替えのcontrollerとして動作します。インスタンスメソッドとクラスメソッドヘルパークラスの場合 - Ruby、Rails

私の質問は私のヘルパークラスのメソッドは、(私はestablish_connectionexecute_querycreate_hashstore_recordsがいる)self(すなわちなるクラスメソッド)に呼び出されるべきか、それぞれが私のヘルパーのインスタンスで呼び出されるかどうか?

私は接続が1つしかなく、レーキタスクはスケジュールごとに1回しか実行されないと考えています。ヘルパークラスのインスタンスを個別に作成する必要はありません。

答えて

1

各インスタンスの状態を (initializeとインスタンス変数を介して)にカスタマイズする必要がない場合は、代わりにクラスメソッド を作成することが理にかなっています。クラスメソッドを使用する場合は、ClassModuleにすると同じ効果が得られます。

プログラミング時に純粋に機能的なパラダイムを使用している場合は、 はこれまでにインスタンスメソッドを使用しません。代わりに、必要なすべてのデータを 引数として渡します。 OOPは多くの場合、簡単に を簡単にするため、このアプローチを推奨していませんが、この状況では、クラスメソッドがわかります。 機能プログラミングは便利です(mapreduce、またはproc shorthandのような方法) しかし、私はそれを使用する理由は何も見ませんOOPの

関連する問題