実行時にいくつかのプロパティを設定する必要がありますが、いくつかのプロパティには 5 つの設定があり、別のプロパティには 3 つまたは 4 つの設定があるという問題が発生します。複数のクラスを書く必要のないプロパティ?
1 つの例としてColor
、唯一の設定がというプロパティColor
がありますが、別のシナリオでは、とMask
の設定を持つ というプロパティがあります。MaskType
Mask
ExpandoObjectを見てみたいと思うかもしれません。プロパティとその値を動的に追加できますが、.NET 4 以降が必要です。
これは古典的であり、解決策は、プロパティにどのようにアクセスしたいかによって異なります。
ASP.NET では、キャッシュは次のようなものを使用します。
public class Cache
{
private Dictionary<string, object> CachedValues;
public object this [string arg]
{
get
{
return CachedValues[arg];
}
}
}
または、使用できますTuple<T1, T2, T3...>
dynamic
または、匿名型を使用できます
個々のオブジェクトを表す個々のクラスを作成する方が常に良いと思います。私の意見では、ジェネリッククラスを作成しようとすると問題が増えるだけです。おそらく、ファクトリまたはアダプタのパターンを見て、さまざまなシナリオで使用するクラスを決定してください。