Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Ioc RoboGuice(一)

Android Ioc RoboGuice(一)

編輯:關於Android編程


在開發應用時一個基本原則是模塊化,並且近最大可能性地降低模塊之間的耦合性。在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庫來完成。比如:
[java]
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 來寫:
[java] 
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平台上使用方法。
只需使用@InjectView 來描述 view 和Id之間的關系,RoboGuice 自動完成余下的工作,代碼簡潔易讀。在介紹完Google Guice ,再接著介紹RoboGuice 在Android平台上使用方法。只需使用@InjectView 來描述 view 和Id之間的關系,RoboGuice 自動完成余下的工作,代碼簡潔易讀。在介紹完Google Guice ,再接著介紹RoboGuice 在Android平台上使用方法。只需使用@InjectView 來描述 view 和Id之間的關系,RoboGuice 自動完成余下的工作,代碼簡潔易讀。在介紹完Google Guice ,再接著介紹RoboGuice 在Android平台上使用方法。只需使用@InjectView 來描述 view 和Id之間的關系,RoboGuice 自動完成余下的工作,代碼簡潔易讀。在介紹完Google Guice ,再接著介紹RoboGuice 在Android平台上使用方法。只需使用@InjectView 來描述 view 和Id之間的關系,RoboGuice 自動完成余下的工作,代碼簡潔易讀。在介紹完Google Guice ,再接著介紹RoboGuice 在Android平台上使用方法。
 
 
 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved