在开发应用时一个基本原则是模块化,并且近最大可能性地降低模块之间的耦合性。在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 RoboGuice 使用指南 - v1.1 #### 概述 RoboGuice 是一款专为 Android 平台设计的轻量级依赖注入框架,它基于 Google Guice 构建,能够极大地简化 Android 应用程序的开发过程。通过使用 RoboGuice,...
Roboguice可以与其他Android框架(如Butter Knife,Dagger等)配合使用,进一步提升开发效率和代码质量。 总之,Android Roboguice通过依赖注入技术,极大地简化了Android应用的开发,提高了代码的可读性和可维护...
implementation 'org.roboguice:roboguice:3.0.1' } ``` 2. 创建Module:创建一个继承自`RoboModule`的类,定义你需要注入的依赖。在这个模块中,你可以通过`bind()`方法指定类的实例或者使用`@Provides`注解的...
annotationProcessor 'org.roboguice:roboguice:4.+' ``` 2. **创建Application类**: 创建一个继承自`RoboApplication`的自定义Application类,并在AndroidManifest.xml中声明。 3. **配置Roboguice**: 在自定义的...
在深入探讨Android Gradle权威指南高清版的具体知识点之前,需要首先明确Gradle是什么。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言来声明项目设置,比...
annotationProcessor 'org.roboguice:roboguice:3.+' ``` 注意替换'3.+'为当前版本号。 2. 创建注入对象:在需要注入的对象上使用`@Inject`注解。例如,你有一个需要注入的`MyService`类,可以这样写: ```java...
1. **注解**:RoBoGuice使用Java的注解机制来标识需要注入的对象。例如,`@Inject`注解标记一个字段或构造函数,表示这个字段或构造函数需要由RoBoGuice自动注入对应的依赖。 2. **Module**:RoBoGuice的模块类...
而Roboguice是一款基于Google Guice框架的轻量级依赖注入库,特别为Android平台设计,它极大地简化了Android应用中的对象创建和管理,包括对Android资源的注入。 **Roboguice的工作原理** Roboguice是Google Guice...
RoboGuice是Android平爱上基于Google Guice开发的一个库,可以大大简化Android应用开发的代码及一些繁琐重复的代码,给Android带来了简单、医用的依赖注入,如果你使用Spring或Guice的话,你就会知道这种编程方式是...
《Android开发权威指南》是一本深受开发者欢迎的书籍,它深入浅出地讲解了Android应用开发的各个方面。这本书的源代码包含了许多实例和练习,帮助读者更好地理解和掌握Android开发技术。通过阅读源代码,开发者可以...
2. **RoboGuice框架**:RoboGuice是针对Android优化的Guice实现,提供了注解驱动的依赖注入。通过简单的注解,开发者可以在不写任何工厂类或setter方法的情况下,让框架自动管理对象的创建和注入。 3. **注解...
《OpenGL ES应用开发实践指南:Android卷》分为两部分,共15章:第1章主要介绍开发环境的安装和配置,以及如何创建一个新的OpenGL项目和清空屏幕;第一部分(第2~9章)详细讲解创建一个简单的空气曲棍球游戏的触控...
implementation 'org.roboguice:roboguice:3.0.1' annotationProcessor 'com.google.inject:guice:4.2.2:no_aop' } ``` 注意,这里还包含了Guice框架,因为Roboguice是基于Guice的。 2. **注解注入**:使用...
《Android编程权威指南》是一本深入探讨Android应用开发的书籍,涵盖了从基础知识到高级特性的全方位内容。书中每个章节都配有相应的源代码,以便读者能够亲手实践,加深理解和掌握。这些源码是学习Android开发的...
Android应用性能优化 开发优秀的Android应用必备指南
- **依赖注入**:RoboGuice使用反射检查类和方法上的注解,根据注解信息实例化对象并注入。对于`@Inject`注解的字段和构造函数,RoboGuice会自动填充相应的依赖。 - **生命周期管理**:对于`@Singleton`注解的类,...
3. **支持AndroidAnnotations**:Roboguice 2.0 开始支持 AndroidAnnotations,这是一套用于简化 Android 开发的库,可以与 Roboguice 结合使用,创建出更简洁的代码。 4. **改进的错误处理**:在遇到注入问题时,...
《Android开发权威指南(第二版)》是一本深入探讨Android应用程序开发的专业书籍,其源码提供了丰富的实践示例,帮助开发者深入理解Android平台的工作机制。源码是学习和提升技术能力的重要资源,它包含了书中各个...