私のドメインオブジェクトの数は、開始日と終了日のプロパティのペアとして日付範囲含まれていますDateRangeオブジェクトを作成する必要がありますか?
public class Period {
public DateTime EffectiveDate { get; set; }
public DateTime ThroughDate { get; set; }
}
public class Timeline {
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
をそして私はこのたくさんのと自分自身を見つける:最後の私を作っ
abstract public int Foo(DateTime startDate, DateTime endDate);
abstract public decimal Bar(DateTime startDate, DateTime endDate);
abstract public ICollection<C5.Rec<DateTime, DateTime>> FooBar(DateTime startDate, DateTime endDate);
wonder ...私はDateRangeクラスを実装する必要がありますか?私はBCLの1つを認識していません。
私の経験では、オブジェクト階層を深くすると、事態が複雑になることがよくあります。これらのオブジェクトは、ReportViewerコントロールによって表示されるRDLCレポートに送信されますが、それはセカンダリです。モデルのビューを曲げるのではなく、モデルのビューを曲げます。我々は、しかし、プロパティ名に関連付けられていない、とのようなもので妥協して喜んで次のようになります。開始日後に来て終了日の
public class DateRange {
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
Period p = new Period();
DateTime t = p.EffectiveDateRange.StartDate;
のDateRangeクラスの利益が集中されるだろう、検証、および
私は、DateRangeクラスが私の価値よりも苦労することはないと確信しています。意見ですか?
サイド質問:BCLの一般的な汎用タプルクラスをどこかで見逃しましたか?私はいくつかの非常に特定のものがさまざまな名前空間に浮かんでいることを知っています。私のパブリックドメインメソッドシグニチャーをC5タイプで汚染すると、非常に汚れているように感じます。
私は間違いなく、DateRangeクラスが役立つと思います。私はしばらく前に土台を書くようになった:http://www.adamjamesnaylor.com/2012/11/04/C-DateRange-Class.aspx –
@AdamNaylor:あなたのリンクはダウンしているようだ... – testing