在 android 中,R.java 用于提供对 XML 文件中定义的资源的访问。要访问资源,我们需要调用findViewById()
传入要获取的资源 id 的方法。
这类似于 Spring,其中 bean 在 XML 上下文中定义并使用应用程序上下文获取。context.getBean("beanId")
这提供了松散耦合,因为 bean 是在外部定义的,并且可以在不修改代码的情况下进行更改。
这让我很困惑。虽然 Android 的功能看起来和 spring 很像,但它有什么优势呢?
- 无论如何,拥有一个中间 R.java 有什么意义?难道我们不能直接通过使用资源读取器/应用程序上下文从 XML 获取资源吗?例如
findViewById("resourceId")
- 没有任何松散耦合。由于 R.java 中的引用是自动生成的,如何删除资源并放入新资源?
- 它遵循什么设计模式(如果有的话)?
- 使用 IOC(如 Roboguice)注入资源不是更好吗?那么为什么谷歌决定给我们这样一种奇怪的资源处理方式呢?
原谅我的无知。我是一名新手 Java 开发人员,一次尝试了太多事情。:-) 感谢所有的反馈。