我正在与一个网站合作,该网站将从许多不同的来源中提取提要,然后将这些流保存到一个通用模型中,在这种情况下是一个特征。FeedEntry 类中的代码示例可能是:
feed = Feedzirra::Feed.fetch_and_parse(feed_url)
add_entries(feed.entries)
...
def self.add_entries(entries)
entries.each do |entry|
# Should know how to parse itself into a trait
@trait = parse(entry)
if @trait.save
...
end
end
诚然,我是java出身,在java这里,我会设置一个继承层次结构,然后在FeedEntry的每个子类上扩展parse方法,让每个FeedEntry都知道如何解析自己。所以我的问题是:
1)这是一个可行的计划吗?
2)如果是这样,是否只包含一个基本上是“类型”的列,说明 FeedEntry 是什么子类?
3)如果没有,对 DRYest 方法有什么建议吗?
谢谢!