Доброе утро, благородные доны.
Сегодня вопрос такой: пусть есть класс Foo, который в одном из методов создает объект класса Bar. Перед этим Foo создает окружение, в котором Bar исполняет связанную с ним логику, и поэтому в целях инкапсуляции этой самой логики хочется, чтобы Foo передавал в Bar this, а тот уже дергал нужные ему (публичные) методы.
Но тогда получается, что все это напоминает коллбеки по своей конструкции (в стеке бутерброд получается из методов Foo, Bar и снова Foo), а коллбеки мне не нравятся как концепция. Поэтому скажите, пожалуйста, как можно более чисто такую хрень спроектировать? А, еще ситуация осложняется тем, что в одном и том же месте такой паттерн придется несколько раз применить вложенным образом (т. е. Bar создает новые объекты, которые таким же макаром будут дергать его методы, и т. д.), и от этого тошнит еще больше.
Спасибо.