Was ist das Konzept hinter R.java?

In Android wird R.java verwendet, um den Zugriff auf in XML-Dateien definierte Ressourcen zu ermöglichen. Um auf die Ressource zuzugreifen, müssen wir sie aufrufenfindViewById() Methode, die die ID der abzurufenden Ressource übergibt.

Dies ähnelt Spring, wo Beans in einem XML-Kontext definiert und mithilfe des Anwendungskontexts abgerufen werden.context.getBean("beanId")

Dies sorgt für eine lose Kopplung, da die Beans extern definiert sind und geändert werden können, ohne den Code zu ändern.

Das hat mich verwirrt. Obwohl das, was Android macht, dem Frühling ähnlich sieht, welchen Vorteil bietet es?

Was bringt es überhaupt, einen fortgeschrittenen R.java zu haben? Könnten wir nicht einfach Ressourcen direkt aus XML mit einem Ressourcenleser / Anwendungskontext abrufen? z.B.findViewById("resourceId")Es gibt keine lose Kupplung. Da Referenzen in R.java automatisch generiert werden, wie kann man eine Ressource löschen und eine neue hinzufügen?Welchem ​​Entwurfsmuster folgt es (falls vorhanden)?Wäre es nicht besser, Ressourcen mithilfe von IOC (wie Roboguice) injizieren zu lassen? Warum hat sich Google dann dazu entschlossen, uns eine so seltsame Art des Umgangs mit Ressourcen zu bieten?

Verzeihen Sie meine Unwissenheit. Ich bin ein Java-Neuling, der zu viele Dinge auf einmal versucht. :-) Danke für all das Feedback.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage