Я программировал в течение некоторого времени, но никогда не интересовался теоретическим пониманием того, что означает каждая концепция, я могу использовать различные концепции программирования, но не зная об этом.
Локатор сервисов: Для меня это относится к записи ярлыков для ускорения разработки за счет сокращения количества кода. Один вопрос: может ли локатор ссылаться только на пространства имен/классы, или я могу иметь реестр переменных?
Вот мое понимание:
$locator = new ServiceLocator()
$locator->set('app', new System\Application());
$locator->set('db', new System\Pdo());
// Get the objects
$locator->get('db')->connect();
$locator->get('app')->run();
Инъекция зависимостей (и контейнер для инъекций зависимостей): Инъекция объектов внутри объектов, что позволяет им быстрее обращаться к ним независимо от шаблона factory. И контейнер DI?
Вот мое понимание:
$app = new System\Application(System\Config::load());
Инверсия управления: Не понимайте этот шаблон дизайна (или понимайте, но не знаете, что я делаю, это IoC)
Тогда, в теории (желательно с простыми примерами), что означает каждое из этих понятий? Правильно ли я, или что не так/может быть улучшено?
Спасибо!