Android学習ステップとIoC


1.Androidの達人になるには、通常6段階に分けられます。
        第一段階:Java SEを熟練に把握し、特にその内部類、スレッド、合併、ネットワークプログラミングなどに対して深く研究する必要がある。熟練してHTTPプロトコルに基づくプログラミングを掌握して、POSTとGETなどの要求方式の流れと詳細を明らかにします。基本的なJava Webプログラミングができます。Java EEを使えばいいです。
        第二段階:Androidの核心APIの使用に精通しており、例えば4つのコンポーネントに関わるAPI、Contectなど、コアインターフェースのプログラミングに精通しています。例えば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依存性注射を使用して、ピコcontainerを以下のように実現します。
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モードを使用して、将来の具体的な実現に関わらず、完全に抽象的なレベルで説明し、技術アーキテクチャを実行することができる。