在 IDictionary 中包装多个列表

发布于 2024-11-29 21:35:02 字数 678 浏览 4 评论 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 具有复合性质(在更高级别组成)。另外,请注意添加了可序列化属性 - 我最初忘记了这一点。

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

I have a class ObjectBatch as follows:

[Serializable]    
class ObjectBatch : IDictionary<string, IObjModel>
    {
        List<Tuple<string, IObjModel>> ModelATypes;
        List<Tuple<string, IObjModel>> ModelBTypes;
        List<Tuple<string, IObjModel>> ModelCTypes;

        /* IDictionary implementations follow */
    }

This class is solely responsible for adding/removing, modifying lists based on a property of IObjModel. Is this a bad design? It feels fine to me; however, since I haven't seen an implementation like this before, I was just wondering if this is bad, and if so, why?

Edit
Assume a unique string is enforced (but at a higher level) and that IObjModels are of a composite nature (composed at a higher level). Also, note the addition of the Serializable attribute - I forgot this initially.

This class basically saves the elements of the individual collections. This class is not accessible by a user. It is an internal storage object.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我闹别瞎闹 2024-12-06 21:35:02

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

ObjectBatch[key] <-- get from A or B or C?
Add(IobjectModel) <-- will add to which list?

This is fine as object composition, but you should not inherit this from Dictionary. What is the purpose of it? If you want user to search on this object using key, it will be return from which of 3 lists? If key or object is self descriptive to type of record, why storing them in different list?

ObjectBatch[key] <-- get from A or B or C?
Add(IobjectModel) <-- will add to which list?
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文