集合作为C#中的装饰器

在设计集合基础架构时,我们遇到了一个非常“明显”的问题:假设您需要实现许多(子)类型的集合。 其中一个方面是存储相关列表数组等,而另一个是与行为相关的有序仅删除可观察 (每次更改时触发事件的那个)等。

显然(再次),需求直接映射到着名的Decorator设计模式( 列表数组 ),其中存储相关的方面将由多个行为( 有序可观察等)装饰。

知道某人已经实施的类似事情会很棒。 因此,如果可能 – 请推荐/参考任何维护良好的第三方库,以满足上述要求。

谢谢到目前为止:)

我觉得你误解了一些事情:

装饰器主要用于在运行时修改和添加行为。 但是您引用的集合的属性需要在编译时可用。 装饰器完全不适合向现有类添加更多方法。

虽然可以将这些集合的特征分解为接口(事实上已经完成了1) ),但这并不是装饰器的真正含义:装饰器包装实现相同接口的现有类。 对于集合,inheritance将更有意义(或可能确实需要)而不是组合。


1)几年后,我开始开发自己的这样的库, Containers.NET,但由于初步基准测试表明原生.NET容器的速度有多快,即使Containers.NET没有任何额外的开销,我也停止了之前的项目它走得很远。