Maksim Maslov
Чет дичь какая то. Чтобы понять, что делает следующая строка, нужно читать с середины
Collection<String> filteredStrings = new ListOf<>(new Filtered<>(string -> string.length() == 5, new IterableOf<>(strings)));
В случае с трансформациями на данных это действительно смотрится громоздко. ИМХО идея композиции обьектов хороша, но не на таком низком уровне. Она удобна на высоком уровне, для описания ситуаций, когда целое составляется из частей.