我正在寻找最合适的方式来处理我的社交网站上的用户活动提要。目前,我有几项活动可以出现在新闻提要中,例如:
- 用户加入网站
- 用户对帖子的评论
- 用户将帖子添加到他们的收藏夹
- 用户向网站添加新帖子
这是目前我的域对象的简化版本:
public abstract class NewsItem : Entity, ITenantSpecific
{
public virtual Account Account { get; set; }
public virtual DateTime DateTime { get; set; }
// returns formatted news html string which gets
// overridden by inherted classes
public abstract string GetNewsHtml();
}
public class NewsItemJoiner : NewsItem
{
public virtual Account AccountJoined { get; set; }
public override string GetNewsHtml()
{
return "XXX has just joined our music network";
}
}
正如您目前所看到的,我有一个属性,必须在每个名为GetNewsHtml
. 这并不理想,因为我认为我的域不应该负责生成我的 HTML。
我考虑过为每种活动类型使用局部视图,并将NewsItem
基类向下转换为正确的类型。
但是我愿意接受建议。