在开发应用时一个基本原则是模块化,并且近最大可能性地降低模块之间的耦合性。在Java平台上Spring Framework 以及.Net 平台CAB ,SCSF 和Prism (WPF,Silverlight)中都有对Dependency
injection 的支持。
Dependency injection 大大降低了类之间的依赖性,可以通过annotation (Java)或是SeviceDepdendcy (.Net) 描述类之间的依赖性,避免了直接调用类似的构造函数或是使用Factory来参加所需的类,从而降低类或模块之间的耦合性,以提高代码重用并增强代码的可维护性。
Google Guice提供了Java平台上一个轻量级的 Dependency injection 框架,并可以支持开发Android应用。本指南将使用Android平台来说明Google Guice的用法。
简单的来说:Guice 降低了Java代码中使用 new 和 Factory函数的调用。可以把Guice 的@Inject 看作 new 的一个替代品。使用Guice可能还需要写一些Factory方法,但你的代码不会依赖这些Factory方法来创建实例。 使用Guice 修改代码,单元测试已经代码重用变得更容易。
RoboGuice 为Android平台上基于Google Guice开发的一个库,可以大大简化Android应用开发的代码和一些繁琐重复的代码。比如代码中可能需要大量使用findViewById在XML中查找一个View,并将其强制转换到所需类型,onCreate 中可能有大量的类似代码。RoboGuice 允许使用annotation 的方式来描述id于View之间的关系,其余的工作由roboGuice库来完成。比如:
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 );
}
}
如果使用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 );
}
}
只需使用@InjectView 来描述 view 和Id之间的关系,RoboGuice 自动完成余下的工作,代码简洁易读。在介绍完Google Guice ,再接着介绍RoboGuice 在Android平台上使用方法。
分享到:
相关推荐
极客学院翻译
博客《android Graphics(一):概述及基本几何图形绘制》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/38875149
Android Studio使用指南 Android Studio使用指南 作者:老毕
Android Roboguice 笔记
android源码之用roboguice实现依赖注入
RoboGuice是Android平爱上基于Google Guice开发的一个库,可以大大简化Android应用开发的代码及一些繁琐重复的代码,给Android带来了简单、医用的依赖注入,如果你使用Spring或Guice的话,你就会知道这种编程方式是...
适合于系统学习Android Gradle知识。特别适合初学者。
android应用中整合Roboguice框架
Android资源注入Roboguice
android权威指南pdf不错的学习资料
Android之RoBoGuice注入函数实例
Android应用性能优化 开发优秀的Android应用必备指南
Android Gradle权威指南.pdf 2017/08 带完整书签
使用开发工具:Android Studio,这个代码实现指南针,功能比较简单,需要的可以在上面继续添加。
演讲提纲涉及:(1)凡客Android客户端应用的介绍及具备的主要功能,并同时介绍APP的实现架构,如native app + web app架构,及如此设计APP架构对电商应用的优势支持;(2)凡客Android客户端应用在开发中主要对APP...
Android开发权威指南(附光盘)/移动开发系列丛书 http://detail.bookuu.com/2074079.html
Android中文翻译组是一个非盈利性质的开源...有在线的中文API、开发者指南、开源项目以及Android视频专栏。 本合集发布日期:2012年1月31日,涵盖历次合集内容,最新版请关注翻译组微博:http://weibo.com/android2。
第一章 建立ANDROID应用开发环境 - 5 - 1.1 步骤一:下载并安装JDK (JAVA SE DEVELOPMENT KIT) - 5 - 1.2 步骤二:下载并安装ADT集成开发环境和ANDROID SDK - 6 - 1.2.1 下载Android SDK (API 17) - 7 - 1.2.2 启动...
android 指南针 源码android 指南针 源码