0

我有一个类 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 的属性添加/删除、修改列表。这是一个糟糕的设计吗?对我来说感觉很好;但是,由于我以前没有见过这样的实现,我只是想知道这是否不好,如果是,为什么?

编辑
假设强制执行唯一字符串(但在更高级别)并且 IObjModel 具有复合性质(在更高级别组成)。另外,请注意添加了 Serializable 属性 - 我最初忘记了这一点。

这个类基本上保存了各个集合的元素。用户无法访问此类。它是一个内部存储对象。

4

1 回答 1

1

这作为对象组合很好,但你不应该从 Dictionary 继承它。它的目的是什么?如果您希望用户使用键搜索此对象,它将从 3 个列表中的哪一个返回?如果键或对象对记录类型是自描述的,为什么将它们存储在不同的列表中?

ObjectBatch[key] <-- get from A or B or C?
Add(IobjectModel) <-- will add to which list?
于 2011-08-16T17:01:46.713 回答