Рубрики
Uncategorized

5 Минут Понимания внедрения зависимостей и инверсии управления

Автор оригинала: David Wong.

Основное объяснение

Люди, открывшие эту статью, должны иметь общее представление о внедрении зависимостей и инверсии контроля. Проще говоря: инверсия управления-это реализация внедрения зависимостей.

Возьмем пример.

Мужчина А хочет найти свою девушку. Он может общаться в чате онлайн, ходить в ночные клубы, ходить в бары и вскоре рисковать и тратить деньги и время. Это способ найти себе девушку. Так же поступают и многие люди.

Мужчина Б хочет найти себе девушку. Он слишком стар, чтобы тратить так много времени и энергии на этот аспект. Он идет прямо на свидание вслепую. Именно так многие молодые люди старшего возраста находят себе подруг, и именно это я хочу сказать сегодня.

Краткое описание

Предположим, что приведенный выше пример состоит в том, чтобы найти подругу, найдите подругу на OK. Так какой же из них более эффективен? Очевидно, человек Б.

Для мужчины Б его цель – найти девушку. Он полагается на Свидание вслепую инъекцию Подругу. Знакомства здесь можно понимать как услугу, такую как сайт знакомств, знакомство с коллегами и друзьями, агентство знакомств и так далее.

Что касается манЫ, то время и деньги, в которые он вкладывает, могут иметь более качественную подругу. Может быть, она так хорошо знает свою подругу, что может так хорошо чувствовать ее характер, что может контролировать ее.

Но мужчине Б трудно понять и контролировать эту девушку. Потому что я ничего об этом не знаю, не говоря уже о том, чтобы контролировать это. Позвольте мне выразить это по-другому: контроль Способности этой подруги совершенны. Разворот Сейчас.

Интерпретация кода

Многие люди не понимают, что внедрение зависимостей и Контролируемая инверсия в основном незнакомы с применимыми сценариями. На самом деле, во многих системах мы используем IoC и DI, что одно и то же. На самом деле, это один из наших шаблонов дизайна: шаблон фасада, также известный как шаблон внешнего вида.

На самом деле, чтобы понять Внедрение зависимостей и IoC Нам нужны две концепции.

  1. Нам нужно сделать одну вещь.
  2. В проекте есть способы сделать это.

Фактический код

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.

Выше…