[GitHub的搬运工]roboguice的一个简单的例子

翻译 2016年05月30日 17:23:54

原文链接

什么是roboguice?

roboguice是一个给Android带来简单方便的依赖注入方式的框架,用到了谷歌自己的Guice library,如果你用过Spring或者Guice,你就会知道这种编程方式有多么快捷

典型Activity写法和roboguice写法比较

典型Activity写法

下面给出了一个例子,让我们一起看一下,以传统的编程方式是如何实现一个典型的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写法

但是,用roboguice实现同样的功能时,就有些不同了:

    @ContentView(R.layout.main)
    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); 
            name.setText( "Hello, " + myName ); 
        } 
    } 

在这个样例里面,onCreate()函数更容易阅读,一些初始化代码被省略,你只需要专注于你的业务逻辑。你需要一个SystemService么?inject一个 。你需要一个View或者resource么?inject一个,初始化交给RoboGuice 来做。

RoboGuice的目的是,让你专注于你的业务逻辑代码。

看一下后续的安装说明,开始配置你的第一个RoboGuice应用吧!

后续会继续翻译,如果英文差不多可以,建议查看原文链接

Android快速开发必备——依赖注入(DI)类库的选择ButterKnife,AndroidAnnotations,RoboGuice

现在做移动端开发的开发者,不管是Android和IOS,公司一般都是喜欢那种具备独立开发能力的人,因为APP项目相对较小,有时候一个人完全可以单独胜任一个项目。所以如果我们要能够具备独立开发的能力,快...
  • finddreams
  • finddreams
  • 2015年05月05日 16:21
  • 2540

Spring中的简单实现AOP小例子

Spring中的简单实现AOP小例子
  • starjuly
  • starjuly
  • 2016年08月31日 23:37
  • 1727

一个例子介绍Ant的用法

ant的一个简单示例,介绍ant的基本用法。
  • DreamingFei
  • DreamingFei
  • 2016年05月03日 22:19
  • 858

Java一个简单的死锁例子

内容:一个简单的死锁例子,大概的思路:两个线程A和B,两把锁X和Y,现在A先拿到锁X,然后sleep()一段时间,我们知道sleep()是不会释放锁资源的。然后如果这段时间线程B拿到锁Y,也sleep...
  • u011345136
  • u011345136
  • 2015年05月16日 20:07
  • 1731

工厂模式的简单例子

当A对象需要调用B对象的方法是,许多初学者会选择使用new关键字来创建一个B实例,然后调用B实例的方法。从语法角度来看,这种做法没有任何问题,这种做法的坏处在于:A类的方法实现直接调用了B类的类名(这...
  • lishaojun0115
  • lishaojun0115
  • 2016年02月26日 14:17
  • 482

第一个简单的Struts2的例子

第一个入门的Struts2例子,比较简单 首先看下项目结构 第一步是搭建Struts2环境,建立项目后加入jar包和配置文件。 jar包和两个配置文件在基础项目中都有得参考,基础项目在↓...
  • buluojava
  • buluojava
  • 2015年12月15日 17:17
  • 88

OpenGL: 一个简单的例子

使用GLUT工具包,显示列表绘制一个三角形,根据OpenGL版本判定使用基本的glBegin,glEnd方法,还是glVertexPointer,glDrawArrays方法。#include #i...
  • Augusdi
  • Augusdi
  • 2014年02月15日 12:02
  • 1760

shiro整合spring简单小例子

这里不对shiro做详细介绍,仅仅是做一个基本功能可以用的例子供大家参考,网上例子大多详细,不能实现。 1创建4张表: desc tb_user; +------------+------------...
  • tomorrow_fine
  • tomorrow_fine
  • 2017年07月09日 14:44
  • 269

一个简单死锁的例子

转自:http://www.open-open.com/code/view/1426489433101package com.spri.test; /**  * 在实际编程中,要尽量避免出...
  • maoyeqiu
  • maoyeqiu
  • 2016年08月09日 20:11
  • 1328

RoboGuice使用心得,什么是RoboGuice?

RoboGuice 使用谷歌自己的Guice库,给Android带来了简单和易用的依赖注入。如果你使用过Spring或Guice的话,你可能已经知道这种编程方式是多么的便捷。 我们使用一个简单地示例...
  • oliver102
  • oliver102
  • 2013年08月17日 00:57
  • 570
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[GitHub的搬运工]roboguice的一个简单的例子
举报原因:
原因补充:

(最多只允许输入30个字)