財務モデリング用のクラス ライブラリを作成しています。
インターフェイスを使用してモデルを定義し、テスト用の抽象化を作成し、後で新しい具象クラスを追加できるようにしたいと考えています。
モノのリストを定義する方法に苦労しているので、後で具象クラスでそれらのリストに追加できます。
たとえば、モデルに費用のリストがあるようにインターフェイスを定義すると、
IEnumerable Expenses {get; 設定;}
後で具体的な XYZExpense のリストを含む ABCModel という具体的なクラスを作成したい場合、リストに項目を簡単に追加できるようにリストを実装する最良の方法は何でしょうか?
List を IEnumerable としてキャストできません。
たとえば、次のようになります。
public interface IFinancialModel
{
IEnumerable<IExpense> Expenses { get; }
IEnumerable<IRevenue> Revenue { get; }
IEnumerable<IAsset> Assets { get; }
IEnumerable<ILiability> Liabilities { get; }
}
public class FinancialModel と呼ばれる具体的なクラスが必要です: IFinancialModel
具体的なアイテムを追加することができます。
独自の「追加」メソッドを作成する必要がありますか? 理想的には、車輪の再発明ではなく、組み込みのリスト機能を活用したいと考えています。