次のようなクラスObjectBatchがあります。
[Serializable]
class ObjectBatch : IDictionary<string, IObjModel>
{
List<Tuple<string, IObjModel>> ModelATypes;
List<Tuple<string, IObjModel>> ModelBTypes;
List<Tuple<string, IObjModel>> ModelCTypes;
/* IDictionary implementations follow */
}
このクラスは、IObjModelのプロパティに基づいてリストを追加/削除、変更する責任を単独で負います。これは悪いデザインですか?それは私には元気です。しかし、私はこれまでこのような実装を見たことがないので、これが悪いのかどうか疑問に思っていました。もしそうなら、なぜですか?
編集
一意の文字列が適用され(ただし、より高いレベルで)、IObjModelsが複合的な性質(より高いレベルで構成される)であると想定します。また、Serializable属性が追加されていることに注意してください。最初はこれを忘れていました。
このクラスは基本的に、個々のコレクションの要素を保存します。このクラスには、ユーザーはアクセスできません。これは内部ストレージオブジェクトです。