如何应用Composite-Iterator

时间:2010-06-29 15:36:17

标签: c# design-patterns

我正在试图弄清楚如何合并迭代器和复合对象。 什么可以是下面结构的最佳实现。

class Composite<Item> : Item
{

}

class Iterator<Item>
{

}

class Iterable<Item>
{

}

1 个答案:

答案 0 :(得分:0)

在C#中,很少会在此方法中执行迭代器。通常,您只需在通用集合中使用您的项目。

至于Composite Pattern - 这种模式背后的主要动机是让你的复合材料被视为只是一个项目。这通常意味着您只需执行以下操作即可将复合与“迭代”“组合”:

// Given:
public class Composite<Item> : IItem {}

你可以这样做:

List<IItem> items = new List<IItem>();
items.Add(new Item());
items.Add(new Composite<Item>());
items.Add(new Item());

// Iterate through the items...
foreach(var item in items)
{
    item.Foo();
}