【文章】
Androidで最も重要で最も難しいUIコントロールは、ListViewリストコントロールであることを知っています。柔軟に使用する場合は、アダプターアダプターを使用する必要があります。したがって、Javaでアダプターモードを学習する必要があると思います(将来使用できるかどうかに関係なく)。結局のところ、Java言語はAndroid開発の非常に重要な基盤です。
アダプターモードを完全に理解するために、多くの知識があります。たとえば、アダプターモードには2つの異なる形式があります。クラスのアダプターモードとオブジェクトのアダプターモードです。しかし、初心者として、私は単にオーケストレーションモードの導入知識を学び、将来それを改善し続けます。コーディングへの道で苦労している子供用の靴が文句を言うことのないことを願っています→_→
1。アダプターの紹介
•あるクラスのインターフェイスを、顧客が望む別のインターフェイスに変換します。アダプターモードにより、インターフェイスが互いに動作するため、元々一緒に動作できなかったクラスが機能します。
•アダプターモードは、最新のJavaフレームワークで非常に一般的に使用されています。このパターンは、次のシナリオに適しています。既存のクラスを使用する必要がありますが、クラスはインターフェイスの要件を満たしていません。または、適切なインターフェイスを提供しない他のクラスに適応する再利用可能なクラスを作成する必要があります。
2。リンゴとオレンジの例
アダプターのアイデアは、次の簡単な例で説明できます。この例は、オレンジ色をリンゴに「適応」することです。下の図に示すように:
上記の写真の下半分でわかるように、アダプターにはオレンジ色のインスタンスが含まれており、Appleクラスを継承しています。オレンジオブジェクトはアダプターに配置されているため、オレンジはリンゴのように機能します。対応するロジック図は次のとおりです。
3.ソケットボックスプラグの例
上の図では、中央のアダプターを介して左ソケットのプラグを正常に接続できます。
4。プラグアダプターのコード実装
/**アダプターモード(アダプター):あるクラスのインターフェイスを顧客が望む別のインターフェイスに変換します。アダプターモードにより、インターフェイスが互いに動作するため、元々一緒に動作できなかったクラスが機能します。 */class adapterdemo {public static void main(string [] args){// power a warts works powera powera = new PowerAimpl(); Start(Powera); Powerb Powerb = new PowerBimpl(); PowerAAdapter PA = New PowerAAdapter(PowerB); start(pa); } //定義方法:Poweraはpublic static void start(powera powera){system.out.println( "....いくつかの重複コード......"); Powera.insert(); System.out.println( "...いくつかの複製コード.../n"); } /** public static void start(powerb powerb){system.out.println( "...いくつかの複製コード......"); PowerB.Connect(); System.out.println( "...いくつかの重複コード......"); } */} // Adapterクラスの定義PowerAAdapterを定義するPowera {private powerb powerb; // publicAadapter(PowerB PowerB){this.powerb = powerb; } //インターフェイスPoweraの実装では、Powera public void insert(){Powerb.Connect()にメソッドを実装する必要があります。 }}/** interface*/interface powera {public void insert();} class poweraimplを実装する{public void insert(){system.out.println( "interfaceが挿入され、動作を開始する"); }}/** power b interface*/interface powerb {public void connect();} class powerbimpl explences powerb {public void connect(){system.out.println( "Power B Interface Is Connected、Start Working"); }}この例では、PoweraのPowerbをPoweraのstart()メソッドでコードに呼び出すことを望みます。もちろん、コメントされた23行または25行のコードを繰り返したくありません。この時点で、アダプターモードを使用できます。
上記のコード説明:
30行目:コアコードの始まりでもあるアダプターの定義を開始します。
33行目と34行目:建設方法を通じてPowerBを渡します。
行37コード:インターフェイスPoweraを実装するため、Poweraにメソッド挿入()を実装する必要があります。
行38コード:PoweraのINSERT()メソッドのPowerBのConnect()メソッドを呼び出します。
その直後、10、11、および12行のコードは次のとおりです。新しいPowerBを使用すると、Adapter PowerAAdapterに渡し、アダプターを起動し、PowerBが16、24、18行でコードを実行します。
注:16、24、および18の順序は間違っていません。アダプターでは、24行のコードを17行に置き換えたためです。
操作効果は次のとおりです。
同様に、PoweraをPowerBとして使用したい場合は、別のアダプターPowerBadapterを定義して双方向アダプターを実装できます。
5。概要
上記の23行目と25行目のコメントコードは、それが多くの重複コードであり、オブジェクト指向の思考に準拠していないことを示しています。私たちは今、私たちのプロジェクトがオンラインであることの例を想定しており、顧客はそれを使用していますが、その後、いくつかの新しい需要が追加されました。オブジェクト指向のオブジェクトにはOO原理があります。変更を閉じます(オンラインに進み、コードを変更しないようにしてください。そうしないと、連鎖反応が発生し、このメソッドを呼び出す他のコードと問題が発生します)、および拡張機能に合わせて開かれています。この時点で、これらの重複コードをアダプターから削減できます。
6。OO設計原則
•インターフェイス指向プログラミング(抽象指向プログラミング)
•パッケージの変更
•より多くの組み合わせを使用し、より少ない継承を使用します
•拡張機能を開くための変更に近い
個人的には、これらのデザインの原則は継続的に実際に深くなる必要があるので、ここではあまり説明しません〜
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。