Android學習進階和IoC

來源:互聯網
上載者:User

1.成為Android高手一般分為六個階段:

        第一階段:熟練掌握Java SE,尤其是對其內部類、線程、並發、網路編程等需要深入研究;熟練掌握基於HTTP協議的編程,清楚POST和GET等請求方式流程和細節;能夠進行基本的Java Web編程,如果能夠使用Java EE則更好;

        第二階段:精通Android的核心API的使用,例如四大組件所涉及的API、Context等,精通核心介面的編程,例如ListView的編程;到達這個階段已經能夠做大部分基本的應用開發了;

        第三階段:精通應用程式框架的原理,尤其是對IoC的理解及其在Android應用程式框架中的應用,精通基本的23種設計模式在Android中的應用;

        第四階段:精通JNI,熟練Android類庫中C/C++組件開發;並能夠使用JNI機制把現有的C/C++組件移植成為應用程式框架的核心組件;具備修改和編寫自己的應用程式框架的能力;

        第五階段:做出自己的Android系統,無論是底層還是上層都能夠了如指掌;能夠根據實際需要設計和實現比較大Android系統,例如帶領比較大的團隊做出自己的Android手機產品等;

        第六階段:勢。一切的思考均進入“勢”的思考,一切都是思路問題,判斷和預測Android的形勢,引領市場,通往自由的天堂。

2. Android之IoC (Inversion of Control)

1)概念

        一種設計思想。使調用者和被調用者解耦和分離,便於更改和代碼重用,便於移植。

        許多應用都是由多個類通過彼此合作來實現商務邏輯,每個對象之間都相互依賴,這將導致代碼高度耦合并且難以測試、難以修改難以重用。

        IoC很好的解決了該問題,它將實現組件間關係從程式內部提到外部容器來管理。也就是說由容器在運行期將組件間的某種依賴關係動態注入組件中。控製程序間關係的實現交給了外部容器來完成。

2)案例

      為了實現調用者和被調用者解耦,分離,一般是通過原廠模式實現的,下面將通過比較原廠模式和Ioc模式不同,加深理解Ioc模式。

      假設有兩個類B 和 C:B作為調用者,C是被調用者。一般的做法是:

public class B{
   private C comp=new C();
  ......
}

      原廠模式實現如下:

public class B{
  private C comp;
  private final static MyFactory myFactory = MyFactory.getInstance();

  public B(){
    this.comp = myFactory.createInstanceOfC();

  }
   public void someMethod(){
    this.comp.sayHello();
  }
}

     使用Ioc依賴性注射實現Picocontainer如下:

public class B{
  private C comp;
  public B(C comp){
    this.comp = comp;
   }
   public void someMethod(){
    this.comp.sayHello();
   }
}
//外部容器實現,控製程序間的關係。CImp類為C介面/類的一個具體實現。

public class client{
   public static void main( String[] args ) {
    DefaultPicoContainer container = new DefaultPicoContainer();
    container.registerComponentImplementation(CImp.class); //向B類實現注射C類具體實現
    container.registerComponentImplementation(B.class);
    B b = (B) container.getComponentInstance(B.class);
    b.someMethod();
   }
}

3)原廠模式和Ioc不同的特點和區別:

  如上,主要區別體現在B類的代碼,如果使用Ioc,在B類代碼中將不需要嵌入任何原廠模式等的代碼,因為這些原廠模式其實還是與C有些間接的聯絡,這樣,使用Ioc徹底解耦了B和C之間的聯絡。

  使用Ioc帶來的代價是:需要在用戶端或其它某處進行B和C之間聯絡的組裝。

  所以,Ioc並沒有消除B和C之間這樣的聯絡,只是轉移了這種聯絡。
  總之,使用Ioc模式,可以不管將來具體實現,完全在一個抽象層次進行描述和技術架構。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.