ソーシャル ネットワーキング サイトでユーザー アクティビティ フィードを処理する最も適切な方法を探しています。現在、次のようなニュースフィードに表示できるいくつかのアクティビティがあります。
- ユーザーがサイトに参加する
- 投稿に対するユーザーのコメント
- ユーザーが投稿をお気に入りに追加する
- ユーザーがサイトに新しい投稿を追加します
現時点での私のドメインオブジェクトの簡略版は次のとおりです。
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
し、正しいタイプにダウンキャストされた基本クラスをそこに渡すことを考えました。
しかし、私は提案を受け入れています。