我有一个模型,它会被调用大约 50 次来创建 50 个带有 rake 任务的文件。
大约 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 个模块并在创建时扩展适当的模块。
那么哪个是最好的选择,或者这种情况有更好的模式吗?