2つのタイプがあるとします:
ClassA
{
int ValueA;
int CalculatedA;
}
ClassB
{
int ValueA;
int CalculatedA;
int ValueB;
int CalculatedB;
}
CalculatedBValueAと同様に必要ValueBです。これを実装するための最良のパターンを決定しようとしています。
オプション 1:サブクラスClassA化し、余分な値を追加します。Update()サブクラスでオーバーライドされる共通メソッドがあります。これはモデル内の単純なコードですが、これらのクラスを作成するコードは、作成するクラスを事前に知る必要があり、これらの型のリストを反復処理するコードは、余分なフィールドを処理するために型チェックを行う必要があります。
オプション 2:追加のプロパティを別のクラスに配置し、CalculatedBそこに更新コードを配置します。これに関する問題は、ClassBいつ更新されるかを知る何らかの方法が必要であり、これらのクラスのValueAようなものを実装する必要がないことを望んでいました. INotifyPropertyChangedこれを行うもう 1 つの方法は、追加のプロパティ クラスにある種のパブリック Update メソッドを用意し、メイン クラスValueAが更新時にそのメソッドを呼び出すようにすることです。また、望ましくありません。
オプション 3: null 許容型ClassBを使用するValueBだけです。CalculatedB合格。
もうありますか?あなたならどちらを選びますか?