2010-06-29 55 views
0

我想弄清楚如何合併迭代器和複合對象。 什麼可以是下面的結構的最佳實現。如何應用複合迭代器

class Composite<Item> : Item 
{ 

} 

class Iterator<Item> 
{ 

} 

class Iterable<Item> 
{ 

} 

回答

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(); 
}