Android RoboGuice使用指南(9) Untargetted Bindings

在创建Bindings时,也可以不给出绑定的目标,通常用于含有@ImplementedBy 和@ProvidedBy (后面介绍)的实类(Concrete classes 或type)。 Untargeted bindings 目的是通知Injector 某个类类型,从而Injector可以预先准备某个依 赖。Untargetted Bindings不含to语句。

例如:

bind

(MyConcreteClass.class);
bind(AnotherConcreteClass.class).in(Singleton.class);

但如果此 时需要同时使用binding annotations 时,需要为绑定添加目标,即使是绑定到 同一个实类,如:

bind(MyConcreteClass.class)
 .annotatedWith(Names.named("foo"))
 .to(MyConcreteClass.class);
bind(AnotherConcreteClass.class)
 .annotatedWith(Names.named("foo"))
 .to(AnotherConcreteClass.class)
 .in(Singleton.class);

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索class
, singleton
, bind
injector
roboguice、roboguice3.0 使用、robo un、guice、guice 教程,以便于您获取更多的相关知识。

时间: 2024-11-18 08:57:04

Android RoboGuice使用指南(9) Untargetted Bindings的相关文章

Android RoboGuice使用指南(10) Just-in-time Bindings

Injector 通过检查bindings 定义来创建某个类型的实例对象.定义在Module 中的绑定称为"明确声明绑定(Explicit bindings".Injector 会首先使用带 有Explicit Bindings为某个类型创建实例对象. 当但某个类型没有明确定义绑 定时,Injector 试图构造"即时绑定(Just-in-time Bindings),JIT Bindings 也成为隐含绑定(implicit bindings). Eligible Cons

Android RoboGuice使用指南(6) Instance Bindings

我们在前面例子Android RoboGuice 使用指南(4):Linked Bindings 时为简单 起见,定义MyRectangle和MySquare时为它们定义了一个不带参数的构造函数,如 MyRectangle的如下: public class MyRectangle extends Rectangle{ public MyRectangle(){ super(50,50,100,120); } public MyRectangle(int width, int height){ s

Android RoboGuice使用指南(8) Provider Bindings

如果@Provides方法很复杂的话,可以将这些代码移动到单独的类中.这个类 需要实现Guice的Provider 接口,该接口定义如下 public interface Provider<T> { T get();} 为一个generic 接口. 本例我们定义一个PathProvider,用于 返回一个Path对象: public class PathProvider implements Provider<Path>{ private String pathdata = &qu

Android RoboGuice使用指南(4) Linked Bindings

Roboguice 中最常用的一种绑定为Linked Bindings,将某个类型映射到其实 现.这里我们使用引路蜂二维图形库中的类为例,引路蜂二维图形库的使用可以 参见Android简明开发教程八:引路蜂二维图形绘制实例功能定义. 使用 下面几个类 IShape, Rectangle, MyRectangle, MySquare, 其继承关系如下图所示: 下面代码将IShape 映射到MyRectangle public class Graphics2DModule extends Abstr

Android RoboGuice使用指南(15) Inject Context

在Android应用程序中,很多地方需要引用到Context对象(Activity, Application,Service等).Roboguice 使得引用Context对象变得非常容易. 可以参见下面例子,这里定义一个不在Activity中的类ContextInfo,需 要引用Context对象: class ContextInfo{ final Context context; @Inject ContextInfo(Context context){ this.context=conte

Android RoboGuice使用指南(14) Inject View

在例子Android RoboGuice 使用指南(2):第一个例子Hello World 介绍了使用 Roboguice开发的基本步骤: 创建一个RoboApplication 的子类GuiceApplication,GuiceApplication为 Appliacation的子类,修改AndroidManifest.xml,将Application 的name 指向这 个类. 将原先由Activity派生的类基类改为RoboActivity(或其它相关 Activity). 如果有需要的话

Android RoboGuice使用指南(13) RoboGuice功能描述

前面在Android RoboGuice 使用指南(1):概述 对应Roboguice做了简要的介绍 ,之后介绍了Google Guice的基本用法,Roboguice是基本Android和Google Guice开发的适用于Android平台的Dependency Injection 开发包,下图为使用 Roboguice开发应用的基本框图: Android应用程序可以直接使用Google Guice来为普通类进行注入操作,而对 和Android平台相关的类如Activity,Context,

Android RoboGuice使用指南(3) Bindings 概述

一个应用中类于类之间的依赖关系可能非常复杂,创建于个类实例,需要先创 建类所依赖的类的示例,而创建所依赖类的实例,这些类又可能依赖其它类,以 此类推.因此在创建一个类实例时,你正在需要创建的是一个对象图对象(Object Graph). 手工创建Object Graph 是一个非常繁琐而且容易出错的过程, 并且很难对代码进行测试,而Guice或Roboguice可以帮助你创建Object Graph, 所要做的工作是配置类和类之间的依赖关系. 模块(Modules) 是Guice 构 造Obje

Android RoboGuice使用指南(5) Binding Annotations

有些情况需要将同一类型映射到不同的类实现,还是使用绘图的例 子. IShape, Rectangle, MyRectangle, MySquare,有如下继承关系: 我们可能需要将IShape 同时映射到 MyRectangle 和MySquare ,这时可以使用Binding Annotation 来实现. 这时使 用类型和annotation (标注)可以唯一确定一个Binding.Type 和annotation 对 称为Key(键). 为了同时使用MyRectangle和MySequar