2017-01-24 5 views
-4

Wie benutze ich Dolch in meinem Projekt und wozu dient der Mensch? Ich habe es auf Google gesucht, aber ich bin nicht klar darüber. Bitte geben Sie mir auch die beste Lösung und ein Beispiel, wenn möglich.Was ist Dolch? Und warum wir es benutzen?

+0

Willkommen bei Stack Overflow. Leider ist Ihre Frage zu weit gefasst, um zu unserer Community zu passen. Ich schlage vor, dass Sie die Dagger-Dokumentation lesen und mehr über die Android-Entwicklung im Allgemeinen erfahren. –

+1

Wenn Sie neu bei Android sind, verwenden Sie Dolch noch nicht, es sei denn, es ist Ihnen klar, was die realen Probleme sind, die angesprochen werden müssen. – Enzokie

Antwort

2

Viele Android-Apps sind auf die Instanziierung von Objekten angewiesen, für die häufig andere Abhängigkeiten erforderlich sind. Zum Beispiel kann ein Twitter-API-Client unter Verwendung einer Netzwerkbibliothek wie Retrofit erstellt werden. Um diese Bibliothek zu verwenden, müssen Sie möglicherweise auch Parsing-Bibliotheken wie Gson hinzufügen. Darüber hinaus erfordern Klassen, die Authentifizierung oder Zwischenspeicherung implementieren, möglicherweise den Zugriff auf freigegebene Einstellungen oder anderen gemeinsamen Speicher, wodurch sie zuerst instanziiert und eine inhärente Abhängigkeitskette erstellt werden müssen.

Dolch 2 analysiert diese Abhängigkeiten für Sie und generiert Code, um sie miteinander zu verbinden. Zwar gibt es andere Frameworks zur Java-Abhängigkeitsinjektion, aber viele von ihnen waren bei der Verwendung von XML eingeschränkt, mussten zur Laufzeit die Abhängigkeitsprobleme überprüfen oder während des Startvorgangs Leistungseinbußen hinnehmen. Dagger 2 setzt ausschließlich auf die Verwendung von Java-Annotationsprozessoren und Compile-Time-Checks zur Analyse und Überprüfung von Abhängigkeiten. Es wird als eines der effizientesten Frameworks für die Abhängigkeitsinjektion betrachtet, die bisher erstellt wurden.

Vorteile

Hier ist eine Liste von weiteren Vorteilen von 2 Dolch mit:

  • Vereinfacht den Zugriff auf gemeinsam genutzte Instanzen. Genauso wie die ButterKnife-Bibliothek das Definieren von Verweisen auf Ansichten, Ereignishandler und Ressourcen erleichtert, bietet Dagger 2 eine einfache Möglichkeit, Verweise auf gemeinsam genutzte Instanzen zu erhalten. Zum Beispiel einmal erklären wir in Dagger unsere Singleton Instanzen wie MyTwitterApiClient oder SharedPreferences, wir Felder mit einer einfachen @Inject Anmerkung erklären können:

    public class MainActivity erstreckt Aktivität {

    @Inject MyTwitterApiClient mTwitterApiClient; 
        @Inject SharedPreferences sharedPreferences; 
    
        public void onCreate(Bundle savedInstance) { 
         // assign singleton instances to fields 
         InjectorClass.inject(this); 
        } 
    

    }

  • Einfache Konfiguration komplexer Abhängigkeiten. Es gibt eine implizite Reihenfolge, in der Ihre Objekte oft erstellt werden. Dolch 2 durchläuft den Abhängigkeitsgraphen und erzeugt einen Code, der sowohl leicht zu verstehen als auch zu verfolgen ist, während Sie gleichzeitig eine große Menge an Codebausteinen speichern, die Sie normalerweise manuell schreiben müssen, um Verweise zu erhalten und sie als Abhängigkeiten an andere Objekte weiterzugeben . Es erleichtert auch das Refactoring, da Sie sich auf die zu erstellenden Module konzentrieren können, anstatt sich auf die Reihenfolge zu konzentrieren, in der sie erstellt werden müssen.

  • Einfachere Einheiten- und Integrationstests Da das Abhängigkeitsdiagramm für uns erstellt wird, können wir problemlos Module austauschen, die Netzwerkantworten erstellen und dieses Verhalten ausspionieren.

  • Überlappende Instanzen Sie können Instanzen nicht nur einfach verwalten, die den gesamten Anwendungslebenszyklus umfassen, sondern auch Dagger 2 verwenden, um Instanzen mit kürzeren Lebensdauern zu definieren (d. H. An Benutzersitzung, Aktivitätslebenszyklus usw. gebunden).

Verwandte Themen