[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应用吧!

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

相关文章推荐

Spring中IOC的一个简单入门实例(搬运工)

IOC:一个用xml来定义的生成对象的模式//human接口 package com.spring.test;public class American implements Human { @...

Github-Client(ANDROID)开源之旅(四) ------ 简介Roboguice

Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC),Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数...

C#.NET编写的简单搬运工

  • 2009-08-12 21:05
  • 789KB
  • 下载

依赖注入之Android RoboGuice简单使用

维基百科解释: 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependen...

我是一个辛勤的搬运工(三)

Retrofit post请求。

搬运工整理之HoloLens你的一个HoloLens应用程序 02

搬运工整理之HoloLens你的一个HoloLens应用程序 02下面的例子没有使用Holo Toolkit中的组件,只是创建一个Cube,并安装到HoloLens中或者在虚拟机中运行 - 在Uni...

Emacs指北(做一个搬运工好累)

从一个简单的emacs入门教程说起: 一个不知道怎么描述的emacs教程 一个简单的介绍 emacs[/ˈiːmæks/]是地球上的编辑器中最像操作系统,操作系统中最像编辑器的编辑器,按照...
  • tham_
  • tham_
  • 2017-07-18 17:13
  • 286

我是一个辛勤的搬运工(二)

Glide,Picasso,Fresco的对比分析。

github上传代码(sourceTree是一个界面化的上传工具,简单易懂,可以初学者去看看)

注意:安装的前提条件是配置好Git的相关环境或者安装好git.exe,此处不再重点提及         上传的步骤:(本文采用git 命令界面进行操作)         ( git con...

MVC的一个简单例子

  • 2014-08-20 22:38
  • 1.80MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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