Heim Web-Frontend js-Tutorial Eine eingehende Analyse der Prinzipien der AngularJS-Abhängigkeitsinjektion

Eine eingehende Analyse der Prinzipien der AngularJS-Abhängigkeitsinjektion

Mar 28, 2018 pm 03:06 PM
angularjs 依赖注入

Dieser Artikel enthält hauptsächlich eine ausführliche Analyse des AngularJS-Abhängigkeitsinjektionsprinzips. Er hat einen guten Referenzwert und ich hoffe, dass er für alle hilfreich sein wird. Folgen wir dem Herausgeber und werfen wir einen Blick darauf.

Abhängigkeitsinjektion: Abhängigkeitsinjektion AbkürzungDI

Beispiel:

var xiaomi = new Xiaomi();     // 假设小米公司生产了一台xiaomi手机
createShipment(xiaomi);         //此方法能把货送给顾客,这叫做把小米手机注入到createShipment()方法
Nach dem Login kopieren

Erneut annehmen Wenn die Methode createShipment() drei Parameter erfordert (Mobiltelefon, Kurierunternehmen, Bestelldetails), benötigt sie:

var xiaomi = new Xiaomi();     // 不仅要生产手机
var shipCompany = new ShipCompany();   // 还要自己建立个快递公司
var order = new Order();      // 还要自己建立线上线下平台做订单
createShipmentxiaomi,shipCompany,order);   // 虽然小米已经这么干了,但还是很累的
Nach dem Login kopieren

Zusätzlich zu den oben genannten Beispiel: Xiaomi Gibt es keine andere Möglichkeit, in meinem eigenen Geschäft zu verkaufen? Sie müssen nicht nur Mobiltelefone herstellen, sondern sich auch um das Geschäft kümmern und Expresslieferungen durchführen. Sind Sie nicht müde? Xiaomi kann dies nicht nur selbst tun, sondern es auch auf Taobao, JD.com, Suning und anderen Plattformen verkaufen und Expressunternehmen wie Santong Yishun für die Lieferung von Waren nutzen. Dies ist das Problem, das die Abhängigkeitsinjektion lösen muss. Durch die Nutzung von Taobao, JD.com, SF Express und anderen Unternehmen sollen Verkaufsservice (sellService), Express-Lieferservice (sendService) usw. in Xiaomi integriert werden!

Inversion of Control: Inversion of Control AbkürzungIOC

IOC bezieht sich auf die Übertragung der Kontrolle von Abhängigkeiten vom Inneren des Codes in das Innere des Codes. Xiaomi hat beispielsweise die Befugnis übertragen, Mobiltelefone an Außenstehende zu verkaufen und zu liefern. Ob Taobao verkauft oder JD.com, ob YTO liefert oder SF Express liefert, Xiaomi muss sich nur darum kümmern Mobiltelefone. Überlassen Sie berufliche Angelegenheiten den Profis.

IOC ist ein loser Kopplungsmodus, und das Implementierungsmittel ist die Abhängigkeitsinjektion.

Injektor:

Konstruktor(privat someService: SomeService) { ...}

Dieser Satz bedeutet, dass diese Komponente einen someService Das Attribut von < deklariert 🎜> gibt an, dass sein Typ SomeService ist, und dann geht angular zum Anbieter, um SomeService< zu finden. Eine Instanz von 🎜 > und fügen Sie diese Instanz dann in someService ein.

提供器:

providers:[{provide:SomeService,useClass:SomeService}]

providers:[SomeService]//provideuseClass相同可简写为这个

例:

app.module.ts

@NgModule({  
    providers:[{provide:SellService,useClass:ShunfengService}],             // 这个是淘宝,用的顺丰
      // providers: [{provide:SellService,useClass:YuantongService}]          // 这个是京东,用的圆通})
product.component.ts
@Component({  ...
})
     export class ProductComponent implements OnInit {  product: Product;  constructor(sellService: SellService) {
        this.product = this.sellService.sendProduct();
  }}
Nach dem Login kopieren

上面的代码怎么理解呢?

小米声明sellService对象(也是属性),叫sellService去卖手机,sellService呼叫售卖服务,这个服务是SellService类型的(线上销售),那么angular就会去提供器里面找谁在提供这个售卖服务,至于是淘宝还是京东那要看提供器里面的,用的哪个快递公司就更加不需要小米公司来管了。angular找到SellService之后会new一个ShunfengService的一个实例(找一家顺丰门店),找到之后把服务注入给小米公司的sellServicesellService就跑到那家顺丰门店填送货单(sendProduct方法)把手机送给客户了。

各位看官应该能想出更好的比喻,欢迎交流。如果有不妥之处欢迎指正。

相关推荐:

AngularJS 依赖注入解析

AngularJS中的依赖注入

30行代码让你理解angular依赖注入:angular 依赖注入原理

Das obige ist der detaillierte Inhalt vonEine eingehende Analyse der Prinzipien der AngularJS-Abhängigkeitsinjektion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Eine Schritt-für-Schritt-Anleitung zum Verständnis der Abhängigkeitsinjektion in Angular Eine Schritt-für-Schritt-Anleitung zum Verständnis der Abhängigkeitsinjektion in Angular Dec 02, 2022 pm 09:14 PM

Dieser Artikel führt Sie durch die Abhängigkeitsinjektion, stellt die durch die Abhängigkeitsinjektion gelösten Probleme und ihre native Schreibmethode vor und spricht über das Abhängigkeitsinjektions-Framework von Angular. Ich hoffe, es wird Ihnen hilfreich sein!

So verwenden Sie die Abhängigkeitsinjektion (Dependency Injection) im Phalcon-Framework So verwenden Sie die Abhängigkeitsinjektion (Dependency Injection) im Phalcon-Framework Jul 30, 2023 pm 09:03 PM

Einführung in die Methode zur Verwendung der Abhängigkeitsinjektion (DependencyInjection) im Phalcon-Framework: In der modernen Softwareentwicklung ist die Abhängigkeitsinjektion (DependencyInjection) ein gängiges Entwurfsmuster, das darauf abzielt, die Wartbarkeit und Testbarkeit des Codes zu verbessern. Als schnelles und kostengünstiges PHP-Framework unterstützt das Phalcon-Framework auch die Verwendung von Abhängigkeitsinjektion zur Verwaltung und Organisation von Anwendungsabhängigkeiten. In diesem Artikel erfahren Sie, wie Sie das Phalcon-Framework verwenden

Die neuesten 5 AngularJS-Tutorials im Jahr 2022, vom Einstieg bis zur Beherrschung Die neuesten 5 AngularJS-Tutorials im Jahr 2022, vom Einstieg bis zur Beherrschung Jun 15, 2017 pm 05:50 PM

Javascript ist eine sehr einzigartige Sprache, was die Organisation des Codes, das Programmierparadigma des Codes und die objektorientierte Theorie betrifft. Die Frage, ob Javascript eine objektorientierte Sprache ist, wird seit langem diskutiert Es gibt offensichtlich schon seit langem eine Antwort. Auch wenn Javascript seit zwanzig Jahren vorherrscht, schauen Sie sich einfach das „Black Horse Cloud Classroom JavaScript Advanced Framework“ an, wenn Sie beliebte Frameworks wie jQuery, Angularjs und sogar React verstehen möchten Design-Video-Tutorial“.

Abhängigkeitsinjektionsmuster bei der Übergabe von Golang-Funktionsparametern Abhängigkeitsinjektionsmuster bei der Übergabe von Golang-Funktionsparametern Apr 14, 2024 am 10:15 AM

In Go wird der Abhängigkeitsinjektionsmodus (DI) durch die Übergabe von Funktionsparametern implementiert, einschließlich der Übergabe von Werten und Zeigern. Im DI-Muster werden Abhängigkeiten typischerweise als Zeiger übergeben, um die Entkopplung zu verbessern, Sperrenkonflikte zu reduzieren und die Testbarkeit zu unterstützen. Durch die Verwendung von Zeigern wird die Funktion von der konkreten Implementierung entkoppelt, da sie nur vom Schnittstellentyp abhängt. Durch die Zeigerübergabe wird auch der Overhead für die Übergabe großer Objekte reduziert, wodurch Sperrenkonflikte reduziert werden. Darüber hinaus erleichtert das DI-Muster das Schreiben von Komponententests für Funktionen mithilfe des DI-Musters, da Abhängigkeiten leicht simuliert werden können.

Abhängigkeitsinjektion mithilfe des JUnit-Unit-Test-Frameworks Abhängigkeitsinjektion mithilfe des JUnit-Unit-Test-Frameworks Apr 19, 2024 am 08:42 AM

Zum Testen der Abhängigkeitsinjektion mit JUnit lautet die Zusammenfassung wie folgt: Verwenden Sie Scheinobjekte, um Abhängigkeiten zu erstellen: Die @Mock-Annotation kann Scheinobjekte von Abhängigkeiten erstellen. Testdaten festlegen: Die @Before-Methode wird vor jeder Testmethode ausgeführt und zum Festlegen von Testdaten verwendet. Scheinverhalten konfigurieren: Die Methode Mockito.when() konfiguriert das erwartete Verhalten des Scheinobjekts. Ergebnisse überprüfen: affirmEquals() prüft, ob die tatsächlichen Ergebnisse mit den erwarteten Werten übereinstimmen. Praktische Anwendung: Sie können ein Abhängigkeitsinjektions-Framework (z. B. Spring Framework) verwenden, um Abhängigkeiten zu injizieren und die Richtigkeit der Injektion und den normalen Betrieb des Codes durch JUnit-Einheitentests zu überprüfen.

Verwenden Sie PHP und AngularJS, um eine reaktionsfähige Website zu erstellen und ein hochwertiges Benutzererlebnis zu bieten Verwenden Sie PHP und AngularJS, um eine reaktionsfähige Website zu erstellen und ein hochwertiges Benutzererlebnis zu bieten Jun 27, 2023 pm 07:37 PM

Im heutigen Informationszeitalter sind Websites zu einem wichtigen Instrument für Menschen geworden, um Informationen zu erhalten und zu kommunizieren. Eine responsive Website kann sich an verschiedene Geräte anpassen und den Benutzern ein qualitativ hochwertiges Erlebnis bieten, was zu einem Hotspot in der modernen Website-Entwicklung geworden ist. In diesem Artikel erfahren Sie, wie Sie mit PHP und AngularJS eine responsive Website erstellen, um ein qualitativ hochwertiges Benutzererlebnis zu bieten. Einführung in PHP PHP ist eine serverseitige Open-Source-Programmiersprache, die sich ideal für die Webentwicklung eignet. PHP bietet viele Vorteile, z. B. einfache Erlernbarkeit, plattformübergreifende Funktionalität, umfangreiche Toolbibliothek und Entwicklungseffizienz

Go Language: Leitfaden zur Abhängigkeitsinjektion Go Language: Leitfaden zur Abhängigkeitsinjektion Apr 07, 2024 pm 12:33 PM

Antwort: In der Go-Sprache kann die Abhängigkeitsinjektion über Schnittstellen und Strukturen implementiert werden. Definieren Sie eine Schnittstelle, die das Verhalten von Abhängigkeiten beschreibt. Erstellen Sie eine Struktur, die diese Schnittstelle implementiert. Fügen Sie Abhängigkeiten über Schnittstellen als Parameter in Funktionen ein. Ermöglicht das einfache Ersetzen von Abhängigkeiten in Tests oder anderen Szenarien.

Abhängigkeitsinjektion und Servicecontainer für PHP-Funktionen Abhängigkeitsinjektion und Servicecontainer für PHP-Funktionen Apr 27, 2024 pm 01:39 PM

Antwort: Abhängigkeitsinjektion und Servicecontainer in PHP helfen dabei, Abhängigkeiten flexibel zu verwalten und die Testbarkeit des Codes zu verbessern. Abhängigkeitsinjektion: Abhängigkeiten durch den Container leiten, um eine direkte Erstellung innerhalb der Funktion zu vermeiden und so die Flexibilität zu verbessern. Service-Container: Speichert Abhängigkeitsinstanzen für einen einfachen Zugriff im Programm, wodurch die lose Kopplung weiter verbessert wird. Praktischer Fall: Die Beispielanwendung demonstriert die praktische Anwendung von Abhängigkeitsinjektion und Servicecontainern, wobei Abhängigkeiten in den Controller eingefügt werden, was die Vorteile der losen Kopplung widerspiegelt.

See all articles