Как применить Composite-Iterator - PullRequest
0 голосов
/ 29 июня 2010

Я пытаюсь выяснить, как я могу объединить итератор и составные объекты. что может быть лучшей реализацией для структуры ниже.

class Composite<Item> : Item
{

}

class Iterator<Item>
{

}

class Iterable<Item>
{

}

1 Ответ

0 голосов
/ 29 июня 2010

В 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...