我对MVC框架有点新,需要知道什么是使用MVC框架时的最佳实践。在使用MVC时在模型中声明方法
我有一个名为NewsFeed的模型类,它包含像news_title,news_publish_date,news_url这样的字段。
class NewsFeed < ActiveRecord::Base
attr_accessible :description, :feed_id, :link, :publish_date, :title
def save_news_info(feed_id, news_title, news_link, news_publish_date, news_description)
self.feed_id = feed_id
self.title = news_title
self.link = news_link
self.publish_date = news_publish_date
self.description = news_description
end
end
的任务是阅读的RSS提要,并收集它所包含的所有消息,所以我做了一类名为的FeedReader,并在该类我使用的是宝石feedzirra来解析提要链接
class FeedReader
attr_accessor :title, :url, :publish_date, :news_array
def initialize(feed_url)
@url=feed_url
end
def read
feed = Feedzirra::Feed.fetch_and_parse(@url)
@title = feed.title
@url = feed.feed_url
@publish_date = feed.last_modified
end
end
我的问题是,如果这是一个很好的做法,像模型(NewsFeed)类一样有一个单独的类,并且有读取函数,或者我应该在模型类中声明读取函数并删除FeedReader? (请注意,我一直在阅读的内容是,在模型类中放置太多功能令人不悦),并且将来所有的功能(如清理消息描述,去除特定标签等)都会在模型类中进行编码,而后者又会变得越来越大。
谢谢!所以如果在某些时候我改变了我的数据库模式,这反过来又要求我改变feedreader类,那么这不会被认为是一个糟糕的设计? – samach 2012-07-17 11:27:56
只有当您的读者直接访问'NewsFeed'的变量(这意味着打破封装)。 – 2012-07-17 11:32:00