Основное объяснение
Люди, открывшие эту статью, должны иметь общее представление о внедрении зависимостей и инверсии контроля. Проще говоря: инверсия управления-это реализация внедрения зависимостей.
Возьмем пример.
Мужчина А хочет найти свою девушку. Он может общаться в чате онлайн, ходить в ночные клубы, ходить в бары и вскоре рисковать и тратить деньги и время. Это способ найти себе девушку. Так же поступают и многие люди.
Мужчина Б хочет найти себе девушку. Он слишком стар, чтобы тратить так много времени и энергии на этот аспект. Он идет прямо на свидание вслепую. Именно так многие молодые люди старшего возраста находят себе подруг, и именно это я хочу сказать сегодня.
Краткое описание
Предположим, что приведенный выше пример состоит в том, чтобы найти подругу, найдите подругу на OK. Так какой же из них более эффективен? Очевидно, человек Б.
Для мужчины Б его цель – найти девушку. Он полагается на Свидание вслепую инъекцию Подругу. Знакомства здесь можно понимать как услугу, такую как сайт знакомств, знакомство с коллегами и друзьями, агентство знакомств и так далее.
Что касается манЫ, то время и деньги, в которые он вкладывает, могут иметь более качественную подругу. Может быть, она так хорошо знает свою подругу, что может так хорошо чувствовать ее характер, что может контролировать ее.
Но мужчине Б трудно понять и контролировать эту девушку. Потому что я ничего об этом не знаю, не говоря уже о том, чтобы контролировать это. Позвольте мне выразить это по-другому: контроль Способности этой подруги совершенны. Разворот Сейчас.
Интерпретация кода
Многие люди не понимают, что внедрение зависимостей и Контролируемая инверсия в основном незнакомы с применимыми сценариями. На самом деле, во многих системах мы используем IoC и DI, что одно и то же. На самом деле, это один из наших шаблонов дизайна: шаблон фасада, также известный как шаблон внешнего вида.
На самом деле, чтобы понять Внедрение зависимостей и IoC Нам нужны две концепции.
- Нам нужно сделать одну вещь.
- В проекте есть способы сделать это.
Фактический код
class Boy {
public function getGirlfriend() {
$site = new LoveSite();
$site->createGirl();
}
}
class LoveSite {
public function createGirl() {}
}
$boy = new Boy;
$boy->getGirlfriend();
Приведенный выше код является примером. Для мальчика Сайт любви-это зависимость, которая вводится и создается с помощью Bow и вызова метода get Girlfriend.
Инверсия управления в этом примере представлена использованием отдельного класса LoveSite для реализации функции createGirl, а не написанием кода функции в классе Boy.
Выше…