类似Gmail的标签系统

Dim*_*ris 1 c# design-patterns

我正在研究多种方法来实施类似于Gmail中的标签系统.基本上我有一个最低级别的资源,我想以标签的形式为该资源提供一些组织分组.如果有人实现了类似的东西,我想听听你的意见.我的想法是在Resource实例中有一个List<Label>.我需要有一个有效的机制,以便根据标签或基于资源进行非常快速的搜索.

谢谢迪米特里斯

jas*_*son 5

不,我不会那样做.我想考虑维护两本词典,Label -> HashSet<Resource>并且Resource -> HashSet<Label>.这样可以快速查找两个方向.显然你应该封装它.

此外,无论你做什么,你都不应该把它嵌入你的Resource.这是一种资源,它正在维护它的标签?不,单一责任和所有这一切.