Android中的DI(依赖注入)框架--RoboGuice
来源:互联网 发布:阿里云ubuntu镜像下载 编辑:程序博客网 时间:2024/05/17 09:22
RoboGuice是应用于Android开发中的DI(依赖注入)框架,基于 Google 自己的Guice库.如果你曾接触过Spring框架(Java开发中三大框架之一,现在甚至比J2EE都流行)或Guice框架,你就应该知道这种开发模式的便捷之处了。
先来看一下典型Android中的Activity代码:
class AndroidWay extends Activity { TextView name; ImageView thumbnail; LocationManager loc; Drawable icon; String myName; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); name = (TextView) findViewById(R.id.name); thumbnail = (ImageView) findViewById(R.id.thumbnail); loc = (LocationManager) getSystemService(Activity.LOCATION_SERVICE); icon = getResources().getDrawable(R.drawable.icon); myName = getString(R.string.app_name); name.setText( "Hello, " + myName ); } }
这段代码共19行。如果你从onCreate读起的话,你会发现超过5行的代码是在进行死板无脑的初始化,然后才能看到这唯一一行有意义的代码name.setText().而且越是复杂的Activity,这种冗余的初始化代码越多。
下面再来看一下使用RoboGuice实现同样功能的代码吧:
class RoboWay extends RoboActivity { @InjectView(R.id.name) TextView name; @InjectView(R.id.thumbnail) ImageView thumbnail; @InjectResource(R.drawable.icon) Drawable icon; @InjectResource(R.string.app_name) String myName; @Inject LocationManager loc; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); name.setText( "Hello, " + myName ); } }在这个例子中,onCreate()方法一览无余,所有模板式的初始化被分离开,只留下程序中真正的逻辑模块。你需要一个系统服务么?注入一个。你需要一个View或者Resource么?也注入一个。RoboGuice 帮你实现这些细节。
RoboGuice 的目的就是让你的代码更关注于应用,而不是初始化、维护生命周期等工作。
文档的简单介绍当然是不足够满足大家的,只是对RoboGuice有了浅浅的了解,学习更多,可以看它所提供的例子,项目源码here。
(前段时间经同事推荐接触了Afinal,才对Android开发的依赖注入有了一定了解,因此准备学习一下,后又发现actionbarSherlock包中的AstroboyMasterConsole使用的roboguice库和afinal中的DI很像,因此拿来跟大家分享,有兴趣的朋友可以跟我交流)
- Android中的DI(依赖注入)框架--RoboGuice
- Android 依赖注入框架RoboGuice
- Android快速开发必备——依赖注入(DI)类库的选择ButterKnife,AndroidAnnotations,RoboGuice
- android开发依赖注入-RoboGuice
- Android 依赖注入(DI)框架 Dagger
- IoC框架(依赖注入 DI)
- Spirng框架-DI依赖注入
- android 的依赖注入技术 RoboGuice
- 使用Roboguice依赖注入规划Android项目
- Android依赖注入:Dagger、RoboGuice和ButterKnife
- Android 依赖注入函数库Roboguice(一)
- 依赖注入之Android RoboGuice简单使用
- 关于android Roboguice的依赖注入
- Android依赖注入:Dagger、RoboGuice和ButterKnife
- Android依赖注入:Dagger、RoboGuice和ButterKnife
- Android依赖注入:Dagger、RoboGuice和ButterKnife
- 依赖注入(DI)
- 依赖注入(DI)
- CF Round#169
- linux下 rm 删除非空目录
- excel的常用技巧
- mysql innodb表空间损坏补救方法
- mysql 分库分表
- Android中的DI(依赖注入)框架--RoboGuice
- Symmetric NAT and It’s Problems
- Lambdas, auto, and static_assert: C++0x Features in VC10, Part 1
- 列存储、行存储
- 函数式编程
- mysql的备份、导入、以及导出命令
- 曲线拟合-B样条曲线(BCB实现)
- 关于MSCOMM控件的一些说明
- 转 Android 亲测源码分享