Представьте себе подкласс Collection, который знает блок select и блок collect. Экземпляр этого класса оборачивает другой collection и динамически применяет к нему эти блоки. Так, например, #do: реализован как
do: aBlock
collection
select: [:element | select value: element]
thenDo: [:element | | v |
v := collect value: element.
aBlock value: v]]
Итак, вопрос в том, как мне назвать этот класс? Я назвал его WrappedCollection, но это имя двусмысленно, и, кроме того, эта штука уже должна существовать и иметь имя.
Кстати, это очень похоже на Subclassing Stream, за исключением того, что у меня не Stream.