2016-07-06 19 views
0

Wir haben gerade Aurelia abgeholt. Zunächst einmal ist es großartig. Ich liebe es so weit zu benutzen. Es scheint sehr modular zu sein, was ich mag. Aber ich musste darüber nachdenken, WARUM sie DI benutzen. Was ist der Vorteil der Verwendung von DI? Ich weiß, dass es den Gebrauch von Singleton einfacher macht, aber gibt es einen anderen Grund?Gibt es noch einen anderen Grund, Abhängigkeitsinjektionen zu verwenden, um das Testen zu erleichtern?

Von dem, was ich verstehe (und ich könnte falsch sein), anstatt dies zu tun:

myObj = new myObj(); 

Sie dies tun:

@autoInject 
export class myClass { 
    constructor(myObj) { 
      this.variable = myObj; 
    } 
} 

Also, ich kann nicht wirklich scheinen ein zu finden Vorteil, warum Menschen DI im Allgemeinen verwenden. Gibt es noch andere Gründe, von denen ich nichts weiß?

+0

Siehe auch http://programmers.stackexchange.com/questions/19203/what-are-the-benefits-of-using-dependency-injection-and-ioc-containers. Die Frage fällt in ihrem gegenwärtigen Zustand in "zu breite" Kategorie und es gibt keine gute Antwort dafür. Die Gründe sind "architektonische Vorteile", das erklärt nicht viel, oder? Dies gilt nicht für Aurelia, sondern für jeden anderen Rahmen, der DI/IoC durchführt. – estus

Antwort

0

Wie in den Kommentaren gesagt, ist dies eine wirklich breite Frage. Aber es gibt einige gute von Jeremy Danyow gab Antworten:

https://www.danyow.net/inversion-of-control-with-aurelia-part-1/ https://www.danyow.net/inversion-of-control-with-aurelia-part-2/

Auf einem hohen Niveau, Aurelia das IOK Paradigma umfasst - Inversion of Control - wo DI ist der Mechanismus, der die Kontrolle über invertieren. IoC ist ein Muster, bei dem ein Framework oder eine Bibliothek benutzerdefinierter Code statt benutzerdefiniertem Code, der ein Framework oder eine Bibliothek verwendet, steuert. Lesen Sie die Artikel für mehr. Ich hoffe, das hilft.