Ich führe einen IoC-Container in das System ein. Die natürliche Frage ist, ob es ein Singleton oder eine Instanz ist, die an eine Klasse weitergegeben wird. Ich lehne mich darauf hin, es als Singleton-Instanz zu haben, weil:
So sieht es aus:
%Vor%Gibt es etwas, was ich vermisse und stattdessen sollte ich etwas wie:
haben %Vor%Natürlich kann ich bei der zweiten Methode immer wieder auf die erste zurückgreifen, indem ich eine Singleton-Container-Instanz umfahre.
EDITED: aktualisierte Codebeispiele
Weder: Beide Ansätze verbergen Ihre Abhängigkeiten und machen Ihre Klassen schwer zu benutzen. Stattdessen sollte Foo
einen IBar
in seinem Konstruktor erfordern:
Die einzigen Dinge, die Sie über Ihren Container wissen sollten, sind Ihre Anwendungspunkte.
Siehe Mythos zur Abhängigkeitsinjektion: Referenzübergabe und Service Locator ist ein Anti-Pattern für weitere eingehende Diskussionen.
Tags und Links c# design-patterns dependency-injection ioc-container
AFAIK können Sie die gleiche ID in verschiedenen Aktivitäten verwenden, wenn Sie
%Vor%und Layout aufblasen dann Android selbst sucht nach dieser bestimmten ID in diesem bestimmten Layout, also kein Problem hier.
Hinweis: Dies bedeutet nicht, dass Sie dieselbe ID für ein anderes Element im selben Layout verwenden können
Ich habe mehrere Aktivitäten. Einige der Aktivitäten haben dieselben Schaltflächen wie "Weiter" oder "Abbrechen" usw., von denen jede unterschiedliche Aktionen hat. Nun die Frage ist, kann ich die gleiche ID für die Schaltfläche in verschiedenen Aktivitäten verwenden? Das heißt, kann ich %code% für alle Fortfahren-Schaltflächen in verschiedenen Aktivitäten verwenden. Oder sollte ich %code%
verwenden'Ansichten können eine Integer-ID zugeordnet haben. Diese IDs werden normalerweise in den Layout-XML-Dateien zugewiesen und dienen dazu, bestimmte Ansichten in der Ansichtsstruktur zu finden. View-IDs müssen nicht im gesamten View-Tree eindeutig sein. Es wird jedoch empfohlen, sicherzustellen, dass sie mindestens eindeutig sind Teil des Baumes, den du suchst. '(http://developer.android.com/reference/android/view/View.html)