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?
Antwort
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).
- 1. Was ist JBPM? Warum es benutzen?
- 2. Cordova Telemetrie, was ist das und warum benutzen Sie es?
- 3. Was ist Dojo und wie man es in asp.net verwendet? und wann sollten wir es benutzen?
- 4. Was bedeutet "Exposition nur"? Warum es benutzen?
- 5. Warum benutzen wir Composer, Nodejs und Schluck, wenn wir Laravel benutzen?
- 6. Was ist Checkpoint-Knoten HDFS? Warum es benutzen?
- 7. Marshalling - was ist das und warum brauchen wir es?
- 8. Was ist CA-Zertifikat und warum brauchen wir es?
- 9. Was ist pyximport und wie soll ich es benutzen?
- 10. Ist Dart was wir benutzen, um Angulardart zu kodieren?
- 11. Was ist VAPID und warum ist es nützlich?
- 12. Dolch 2 - Warum ist das ein Abhängigkeitszyklus?
- 13. Was ist IPC? Wie kann ich es benutzen?
- 14. Was ist Delegation? Wann würde ich es benutzen wollen?
- 15. Was ist "String Bashing" und warum ist es schlecht?
- 16. Was ist das ButtonBarLayout und wie sollten wir es verwenden?
- 17. Was sind Behauptungen? und warum würdest du sie benutzen?
- 18. MyEclipse: Ist es immer noch Wert, es zu benutzen?
- 19. Ist es zulässig, ein Objekt der Klasse auch dann vordefinieren, wenn wir es benutzen oder nicht?
- 20. Was ist Engine.mc() und warum verlangsamt es mein Modell?
- 21. Was ist Sitecore Datasource und warum sollte es verwendet werden?
- 22. Was ist der Zweck von "::" und warum ist es nützlich?
- 23. Was ist Assoziativität von Operatoren und warum ist es wichtig?
- 24. Was ist Clojures Flush und warum ist es notwendig?
- 25. Wann sollten wir Mockery vs JUnit4Monitor benutzen?
- 26. Was ist CMakeCache.txt und warum überschreibt es meine Variablen
- 27. Was ist eine Sequenz (Datenbank)? Wann würden wir es brauchen?
- 28. Ist es sicher, Capistrano zu benutzen?
- 29. Sollten wir aufhören, Zend WinEnabler zu benutzen?
- 30. Was ist Boxen und was macht es?
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. –
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