【发布时间】:2010-02-04 02:09:18
【问题描述】:
我正在寻找最合适的方式来处理我的社交网站上的用户活动源。目前我有几项活动可以出现在新闻提要中,例如:
- 用户加入网站
- 帖子中的用户 cmets
- 用户将帖子添加到收藏夹
- 用户向网站添加新帖子
这是我目前域对象的简化版本:
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 基类向下转换为正确的类型。
不过我愿意接受建议。
【问题讨论】:
标签: c# asp.net-mvc nhibernate domain-driven-design user-activity