rake タスクで 50 個のファイルを作成するために約 50 回呼び出されるモデルがあります。
コードの約 90% は再利用できますが、いくつかのメソッドをオーバーライドする必要があります。元のテーブルから継承することだけを考えていましたが、これは約 40 ~ 50 のモデルにつながる可能性があり、適切ではないと感じました。
class Dog
def bark
"woof"
end
end
class Wolf << Dog
def bark
"growl"
end
end
各モデルでオーバーライドする必要があるメソッドは、おそらく 3 ~ 4 個程度です。
私が持っていた他のアイデアは、この投稿から MODULE + EXTEND + SUPER DECORATOR を使用することでした: http://robots.thoughtbot.com/post/14825364877/evaluating-alternative-decorator-implementations-in Ie
class Dog
def bark
"woof"
end
end
module Wolf
def bark
"growl"
end
end
dog = Dog.new
dog.extend(Wolf)
dog.bark #growl
次に、50 個のモジュールを用意し、作成時に適切なモジュールを拡張します。
では、どちらが最良の選択肢でしょうか、またはこの状況に適したパターンはありますか?