Delphinum, я не стал писать реальные названия классов чтоб не переводить внимание с вопроса на сам контекст, так как он не важен.
Так то речь идёт о DI контейнере.
У него есть биндинги, он сам является коллекцией биндингов, плюс есть возможность создания конекстных биндингов, а значит и есть пул коллекций для каждого контекста.
Вот я у хотел понять как лучше разделить функциональность коллекций между самим контейнером и собственно коллекциями.
Раньше я просто делал базовую коллекцию и проксировал к ней вызовы внутри контейнера.
То есть:
class Container {
protected $bindings;
public function __construct() {
$this->bindings = new BindingCollector;
}
public function hasBinding($type) {
return $this->bindings->hasBinding($type);
}
}А потом подумал что зачем так делать, можно же реализовать функционал коллекции внутри самого контейнера.