我有一個模型將被調用約50次,以創建50個帶有rake任務的文件。Rails設計模式:大量子模型來覆蓋特定功能
代碼的約90%,可重複使用,但我需要重寫一些方法。我在想從原始表只是繼承,但是這可能會導致約40-50模型和感覺不對:
class Dog
def bark
"woof"
end
end
class Wolf << Dog
def bark
"growl"
end
end
有大概在3-4個方法我將需要在每個覆蓋模型。
其他想法,我必須是使用該模塊+從這篇文章EXTEND + SUPER DECORATOR:http://robots.thoughtbot.com/post/14825364877/evaluating-alternative-decorator-implementations-in 即
class Dog
def bark
"woof"
end
end
module Wolf
def bark
"growl"
end
end
dog = Dog.new
dog.extend(Wolf)
dog.bark #growl
然後有50個模塊,並在創建時擴展正確的一個。
那麼這將是最好的選擇,或者是有這種情況的一個更好的模式?
什麼是你的問題? – Mischa
最後添加了問題。 – cbron
如果您需要幾個不同的方法實現集,那麼將其表示爲從一個公共基類繼承的幾個類並不一定是一個不好的方法。 但是,不瞭解更多關於您的具體情況的信息,很難推薦任何特定模式。通用模型需要從特定的和反之的經文中知道什麼?模型公開揭示具體方法嗎?是否需要公開任何模型的泛型方法? –