В Android R.java используется для обеспечения доступа к ресурсам, определенным в файлах XML.
Чтобы получить доступ к ресурсу, нам нужно вызвать метод findViewById()
, передав идентификатор ресурса, который нужно получить.
Это похоже на Spring, где bean-компоненты определяются в контексте XML и извлекаются с использованием контекста приложения. context.getBean("beanId")
Это обеспечивает слабую связь, поскольку bean-компоненты определяются извне и могут быть изменены без внесения изменений в код.
Это меня смутило. Хотя то, что делает Android, похоже на Spring, какое преимущество он предлагает?
- Какой смысл иметь промежуточную версию R.java? Не могли бы мы просто получить ресурсы непосредственно из XML, используя ресурс контекст чтения/приложения. например
findViewById("resourceId")
- Нет никакой слабой связи. Поскольку ссылки в R.java генерируются автоматически, как можно удалить ресурс и добавить новый?
- Какому шаблону проектирования он следует (если он есть)?
- Не лучше ли вводить ресурсы с помощью IOC (например, Roboguice)? Почему тогда гугл решил выдать нам такие странный способ работы с ресурсами?
Прошу прощения за невежество. Я начинающий Java-разработчик, пробующий слишком много вещей одновременно. :-) Спасибо всем за отзывы.