Press "Enter" to skip to content

Dependency Injection without classes — Fun Fun Function


хорошее утро в понедельник сегодня мы идем
посмотреть, как вы можете сделать зависимость
инъекции без классов, используя только
функции Я твой хозяин npj, и вы
просмотр функции развлечения
[Музыка]
[Музыка]
так что зритель, что я
Видение для этого эпизода — это кто-то
который исходит из Java или C short
фон, и вы привыкли делать
вещи определенным образом, и вы
интересно , применимы ли эти способы
на JavaScript, и если не так, как это сделать
в более JavaScript D, да, это
Это
и также может быть, что вы просто
попадание на это видео, и вы
интересно , что зависимость инъекции даже
, и если это так , вы можете проверить
видео, которое я сделал на
субъект инъекции зависимости вы можете
также обнаружите, что эпизод в эпизоде
что связано с этим эпизодом в
слова описания эпизода сегодня трудны
кажется, как это работает
давайте сначала посмотрим на объектно-ориентированную
пример инъекции зависимостей
Вы, вероятно , сделать это ж вам были новыми
к JavaScript, и вы прыгаете в
это, и вы исходите из c-sharp
Предположим, что мы
кодируя пользовательский менеджер , это вещь, которая
на данный момент отвечает за добавление пользователей
к базе данных Я сейчас собираюсь код
это используя мои руки
[Музыка]
[Аплодисменты]
[Музыка]
да, я сделал это
позволь мне пройти тебя через это я
просто должны начать сейчас , так сказать давай
Приходите туда, там круто
поэтому первая строка здесь — это просто
фиктивная база данных базы данных UNICOR
что я на месте, да вот так
приложение это просто наше основное приложение
мы не будем проходить через это
потому что он не существует, я сделал это
а также у нас есть этот пользовательский менеджер, мы
будут кодировать это, это не
есть на этом месте довольно, но я хочу
чтобы показать вам, как мы его используем, мы начинаем
здесь путем создания экземпляра новой базы данных
Здесь мы передаем ему хост и
портирована какая-то базовая конфигурация
варианты, и мы получаем объект соединения
назад от экземпляра этого класса и
это некоторые некоторые API, которые мы
получение от поставщика базы данных у нас есть
никакого контроля над этим или чем-либо, что мы
даже если бы это было реально
здесь, в строке 10, мы
инстанцировании
наш пользовательский менеджер, и мы его передаем
объект соединения вы видите смотрите здесь
это жаль эту вещь, мы есть мы
передавая его здесь, и мы получаем, конечно,
объект музыкального менеджера, наше имя пользователя
ваш экземпляр класса пользовательского менеджера
здесь, наконец, в строке 12 мы
прохождение в менеджере пользователя, что мы
созданный здесь, и мы передаем его в
конструктор приложения наш главный
кусок кода , который является зависимым от
менеджеру пользователя, он должен это делать, и
то он уходит, и он запускает его или
что-то это не очень важно
это просто дать вам какой-то контекст, что
важно, что делает пользовательский менеджер
поэтому давайте продолжим писать
менеджер бум давайте создадим , что использование файла
Теперь
хорошо, я собираюсь назвать, что вы, сэр
менеджер д- р. J да
о , это реализовано
[Аплодисменты]
[Музыка]
да, я написал какой-то код, давайте ходить
через него это менеджер пользователей класс все
нам также необходимо экспортировать его
экспортировать пользовательский менеджер по умолчанию
которые не могут добраться до него со стороны и
то файл не служит большой цели
в мире все равно это займет у него есть
конструктор, который принимает базу данных
соединение запоминается с последнего кода
позвольте мне показать вам здесь пользователя
менеджер принимает объект соединения
вернемся к тому, что здесь происходит
и он назначит его частному
частная переменная частной собственности, которая
мы называем подчеркнутое соединение, и мы используем
это здесь, но я не набрал его
правильно создать пользователя здесь принимает
имя и затем вызовет таблицу на
пользователей и, предположительно, получить
объект-объект объекта какого-то типа назад
из того, что мы называем вставкой с
некоторые варианты я сделал все это до его
потребности здесь для некоторых нечестивых
и затем мы передаем имя
собственность на полное имя в
там к аргументу вставки и Эдварду
похоже, дает обещание здесь и когда
мы, когда обещаем, мы получим
пользователя, и мы извлекаем идентификатор пользователя из этого
какой большой пользователь будет делать, это будет
создайте пользователя, где имя, которое мы
передать его , а затем она будет создавать возвращающие
обещают , что в конечном итоге решает к
ID этого пользователя, является то , что это
фиктивное небольшое приложение теперь
давайте перепишем это функционально
Я собираюсь вернуться к основной
запуск приложения init main
сначала и что я собираюсь делать
вот что вместо того , чтобы называть это
пользовательский менеджер
назовем это user utils, и мы
собираюсь назвать это из пользовательских utils, потому что
это это на самом деле не объект менеджера
это будет набор функций и
это уже не будет
экземпляр , как это он будет
мм-хм, вы знаете один способ, которым мы даже не
будет иметь сдерживаемый
мы просто собираемся
создать пользовательскую функцию , и она собирается
быть AHA делает создать пользователь , и это
собираюсь взять связь как
что и сделать редуктор будет
то, что мы экспортируем у пользователя
Utils
кричит о том, что вкусная паста делает
создать пользователя, а затем создать пользователя
будет то, что мы переходим в
приложение, потому что приложение зависит от
чтобы создать пользователя в порядке, чтобы мы пошли
для кодирования этой вещи пользователь утилит следующий
но прежде чем я это сделаю, я хотел бы провести
немного времени, показывая некоторую любовь к
вы, покровители, проницательные из вас,
заметили, что рекламы не было
перед этим видео и
потому что ваш патронаж вашей финансовой
поддержка позволила мне отключить их
нет больше раздражающих предварительных бросков, они ушли
теперь мне больше не нужно заботиться о
делая рекламодателей счастливыми или сохраняя
просмотр подсчитывается, мне нужно только заботиться о
о чем вы, покровители, думаете о
запись этого из них 1465, но
Есть 13 из вас , которые были очень
щедрым и
невероятно глупые бумажные отходы
уровень торжества или высший и я
хотел бы отпраздновать вас сейчас
[Музыка]
Я не знаю , спасибо большое
вы так много благодарны за ваши
вам действительно не нужно было
это, но вы сделали, и это делает вас
удивительная ваша поддержка позволяет всем
наслаждайтесь веселой забавой функциональной свободной без
объявления, и это также позволяет мне разливать больше
деньги и больше времени в веселую забаву
и перейдите на следующий уровень
спасибо вам большое за то , что покровитель всех
вернемся к коду, где мы в порядке
мы создавали эти пользовательские утилиты и
давайте сделаем это, а вы знаете, что я собираюсь
для захвата копии папок администратора пользователя, которая
и сохраните его здесь, но прокомментировали так
что вы можете получить ссылку, сравнить его
хорошо круто
[Музыка]
BAM в порядке, поэтому давайте посмотрим, что
это происходит, потому что это для некоторых из
Вы это будете абсолютно
ничего странного и для некоторых из вас, что
вероятно, являются новыми для JavaScript, это
будет супер странно , что
здесь происходит
так что сделайте, создайте пользователя, сделайте так, чтобы оно
создает для нас функцию пользователя-пользователя
это небольшая фабрика, которая создает
создать пользовательскую функцию как немного
вопрос, но позвольте мне погулять, давайте прыгать
вернемся к примеру и взглянем на
что он здесь делает, мы называем их
создать пользователя и передать его
и это даст нам создать пользователя так
когда мы это создаем, когда мы, когда
приложение действительно использует его внутри
сам он просто вызовет создание точки пользователя
о
это имя, как Марк Смит, это способ
он будет использоваться, поэтому может создать пользователя
это то, что создает пользователя создания
функций, это даже не вещь, почему я
не говоря ни слова , это функция, которая
создает другие функции, которые называются
более высокого порядка, и вы можете позвонить
например, у меня есть эпизод по этому поводу и
долгой серии функциональных программ, которые
следует за ним, и вы можете проверить его
нажав там, вы также можете найти
это в описании эпизода
функции высшего порядка , они являются
фантастический в любом случае, давайте вернемся назад
в пользовательские утилиты и посмотреть, что мы
есть
поэтому снова может создать пользователя, для которого требуется
соединение , а затем возвращает это
функции он создает эту функцию и
эта функция требует названия, это
только переменная только аргумент, а затем
использует это внутри себя и
вы знаете, что я сделал, скопируйте здесь
это глупо
в более раннем коде он будет ссылаться на
соединение частной собственности
класс, но у нас нет никакого класса
здесь мы имеем связь здесь как
аргумент, и мы имеем доступ к
что так связь там и потом
делает то же самое, что и раньше
и раньше, потому что это стрелка
и мы не используем фигурные скобки
здесь и мы можем это сделать, когда это
только один, когда и функция стрелки
имеет только одну строку, то возврат
нам это не нужно , потому что
то есть это подразумевается, когда мы уезжаем
из фигурных скобок, чтобы мы могли
также делать это, как этот ход, но мы не делаем
сделать это здесь , потому что мы можем спасти
и то, что вы наблюдаете здесь с
где мы получаем доступ к соединению, это
сила закрытия в JavaScript, если вы
нужно закрыть Я имею видео на том
здесь, и вы должны посмотреть это, но
быстрый грунт — это так приятно
Я собираюсь сделать отступы здесь
сделать это, возможно, немного больше
очевидно, поэтому эта первая функция здесь
внешняя фабричная функция или что угодно
хотел бы назвать это, он будет создавать
новое закрытие, так что внутри внутри кода, если if
мы использовали фигурные скобки здесь, и это
был там было место для более более
функции, поэтому больше кода я имею в виду что угодно
здесь было бы иметь доступ к
параметр подключения соединения
конечно , потому что это
функции и, конечно, функция имеет
доступ к нему — это его собственные аргументы
но фантастическая вещь о закрытии
заключается в том, что когда мы объявляем другую функцию
внутри такой функции, как соединение
здесь мы имеем доступ к тому, что
argot и все, что бы это ни было
function имеет доступ к этому коду
этот код здесь также имеет доступ к
одни и те же переменные и аргументы такие
как аргумент от
внешняя функция, так что это позволяет нам
делать так, как это делают затворы
действительно действительно действительно могу позволить мне
вернуться к предыдущему уровню аннотации
и этот метод, который мы здесь используем
где мы создаем функцию, которая
является предваряющей, где
потому что вы знаете, что мы можем
только что сделали это, но потом
было бы громоздким пройти
потому что тогда нам придется
обойти и то, и другое может создать пользователя и
иметь ссылку на соединение
где — то , как это позволяет
предварительно заполнить создать пользователя с
соединение, как, например, позвольте мне вернуться к
основной код так , что мы делаем здесь является то , что
мы создаем функцию, которая имеет
имеют своего рода предварительное заполнение для
загрузите его соединением, так что это
создать пользователя , привязанного навсегда к этому
это соединение здесь, а это означает, что
приложение, когда он получает отличный пользователь, он может
просто вызвать создать пользователя не нужно
знать о том, как
доступ к базе данных
что абстрагируется внутри создания
Пользователь это отличный отличный способ большой
пример инверсии зависимостей У меня есть
видео , но на самом деле
в этом видео я называю это инверсией
который не совсем то же самое
я неправильно понял тонкости, но
то, что я описал, есть зависимость
инверсия и концепция одинаковы I
просто получайте ярлыки неправильно, но в любом случае
Я отвлекся, посмотрим назад на эту вещь
здесь эта техника здесь предваряет
о соединении имени у него есть
есть имя для этого, и оно называется
Корейский У меня есть эпизод на этом как
хорошо там или в эпизоде
описание, когда я сделал это
эпизод, я действительно не совсем понял
потребность в Корее столько, сколько я сейчас
и я думаю, что это на самом деле
иллюстрирует случай лучше, чем
этот эпизод сделал, но зачем вы это делаете?
это почему вы сбегаете вместо
классов, чтобы сделать зависимость
почему почему кто-то предпочитает
это по классам есть несколько
но в этом случае я считаю, что
самым сильным аргументом является
функции минимализма — это то, что
мы уже используем в закрытии языка
это то, что мы уже использовали в
языка все время и в этом случае
мы можем просто уйти, не используя
классы мы можем просто не добавить , что
инструментарий, который является нашим приложением, это
еще одно дело, я бы сказал, что
текущее решение проще
это просто намного меньше кода , это
бит более элегантный, класс
просто большая конструкция, даже если мы даже
если я знаю, что классы собираются
получить функции стрелок, чтобы мы могли сделать
что-то вроде этого, и вы знаете, что
делает сравнение немного более справедливым, но
как вы видите, все еще немного
бит дополнительного синтаксиса в этом случае и
классы также имеют дополнительную сложность
что это связано с этим, это стрелка
функции делают его немного приятнее
но есть еще немного
путаница вокруг какого черта это
ссылается на JavaScript, а это не
ракеты, но это добавленная
осложнение, когда вы сравниваете это с этим
случай, когда это просто невероятно очевидно
к какому соединению относится и что
это будет означать во всех ситуациях
там
никоим образом не изменить это
в этом случае, если это не стрелка
это может быть как изменение
в зависимости от того, что контекст был назван
классы в некоторых случаях имеют
но это так
крохотные, что они только играют, если
вы создаете сотни тысяч
объектов в секунду в этом случае мы
реалистично только с несколькими пользователями
менеджеров, а в лучшем случае, так что это будет
абсолютно отрицательно влияют на нашу
приложение также просто красиво
Посмотрите, как хорошо выглядит
ах, но вы можете удивиться, что происходит
как только мы начнем добавлять дополнительные методы к
класса, что было бы эквивалентно там
например, допустим, что у нас есть пользователь-пользователь
или или что — то подобное, что бы
тогда я буду говорить об этом
в следующем эпизоде
ах cliffhanger вы только что смотрели
эпизод веселой функции, которую я выпускаю
новые эпизоды каждый понедельник утром Oh 800
GMT, если вы смотрите из будущего
вы можете посмотреть видео на следующей неделе здесь
в противном случае вам придется подождать до понедельника
и в то же время вы можете
ознакомьтесь с моим видеороликом, в котором говорится
о том, почему вы, возможно, захотите стать
покровитель
Я буду mpj до следующего утра в понедельник
сексуально
Please follow and like us:

Be First to Comment

Добавить комментарий