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