Просмотр поста

.
L!MP

Delphinum, я не стал писать реальные названия классов чтоб не переводить внимание с вопроса на сам контекст, так как он не важен.

Так то речь идёт о DI контейнере.
У него есть биндинги, он сам является коллекцией биндингов, плюс есть возможность создания конекстных биндингов, а значит и есть пул коллекций для каждого контекста.
Вот я у хотел понять как лучше разделить функциональность коллекций между самим контейнером и собственно коллекциями.

Раньше я просто делал базовую коллекцию и проксировал к ней вызовы внутри контейнера.
То есть:

class Container {
    protected $bindings;

    public function __construct() {
        $this->bindings = new BindingCollector;
    }

    public function hasBinding($type) {
        return $this->bindings->hasBinding($type);
    }
}

А потом подумал что зачем так делать, можно же реализовать функционал коллекции внутри самого контейнера.