使用依赖注入与Roboguice?

Jos*_*ruz 42 architecture tdd android design-patterns roboguice

我正在开发一个Android项目,我想知道关于什么是构建Android应用程序的好架构的任何建议.

我想使用Roboguice使用依赖注入,我一直在阅读MVVM模式或MVC模式(Android MVVM设计模式示例).

另外我知道roboguice有一个非常酷的基于上下文的事件的提升和处理功能,可以在代码解耦时非常可测试.

关于工作设计模式的任何建议?您已经合作或开发过的可测试且可扩展的架构?

sea*_*ges 18

Android平台提供了一组通用的设计模式,与Web应用程序相比,您获得的硬件资源有限,通常最好坚持在生产代码中直接使用它们.还有其他框架可以"包装"基础平台; 如果您有特定目的(或者可能用于原型设计/实验),这些值得研究,但为了获得最佳支持,您通常最好坚持使用标准组件.

在使用UI解决方案时,这是一个很好的资源:http://www.androidpatterns.com/

特别针对DI:有一个适用于AndroidSpring框架,我玩过它并且看起来非常有前景.您已经提到过Roboguice作为另一种选择.但是,为了避免性能和库开销,我仍然发现最简单的方法是编写一个简单的基于反射的类,在我自己的代码中注册和注入依赖项.与此方法类似,除了我通常将注入代码移动到单独的单例中并从那里引用它.

根据我的经验,大多数第三方产品还不够成熟,无法立即依赖,并且在基础平台提供的功能上并没有给您太多帮助.然而,他们不断进步,所以一定要不时地试验大牌.

  • 很棒的答案!Spring Android很棒,但它目前只提供集成库,AFAIK中没有DI.RoboGuice也很好,但Reflection API在某些设备上带来了性能成本.[AndroidAnnotations](http://github.com/excilys/androidannotations)在编译时也做同样的事情.很想听听你的反馈:). (5认同)