A. デザインパターン入門
デザインパターン(デザインパターン)は、一般的に、経験豊富なオブジェクト指向のソフトウェア開発者によって使用されるベストプラクティスを表します。デザインパターンは、ソフトウェア開発プロセスにおけるソフトウェア開発者が直面する共通の問題への解決策です。これらのソリューションは、最大合計時間の長い期間のための試行錯誤を通じて、多くのソフトウェア開発者です。
デザインパターンは、カタログ、コード設計の経験を要約した後、ほとんどの人が知っている、繰り返し使用するように設定されています。リユースコードするために使用するデザインパターン、コードの信頼性を確保するために、他人を理解するために、コードをより簡単に。間違いなく他人のために勝つ、勝つされているデザインモードのシステムでは他に、あり、デザインパターンデザインパターンは同じのレンガの石造りの建物の一部のようなソフトウェア工学の基礎であり、コードは実際のエンジニアリングをコンパイルします。デザインパターンのプロジェクト使用の合理化が現実の原則に対応した各モードがその対応している、多くの問題に最適な解決策になることができ、それぞれのモードは、私たちの周り絶えず繰り返し発生する問題について説明し、問題広く使用することができる理由をデザインパターンであるコア溶液。
II。デザインパターンの使用
2つの主な目的のためのソフトウェア開発におけるパターンを設計します。
1.共通プラットフォームの開発者
デザインパターンは、標準的な用語のシステムを提供し、特定のシナリオに関する。たとえば、シングルトンデザインパターンは、プログラムがシングルトンを使用して、すべてが単一のオブジェクトを使用することができますシングルトンデザインパターンの開発に精通している、とお互いにこの方法を伝えることができるように、単一のオブジェクトを使用することを意味します。
2.ベストプラクティス
デザインパターンは、時間の長い期間のために開発された、彼らは、ソフトウェア開発プロセスが直面する共通の問題に対する最善のソリューションを提供しています。これらの学習モードでは、ソフトウェアの設計を学ぶために迅速かつ簡単な方法を通じて、経験の浅い開発者を支援します。
III。タイプのデザインパターン
タイプのデザインパターン
リファレンスデザインパターンデザインパターン - 再利用可能なオブジェクト指向ソフトウェアの構成要素(中国語の翻訳:デザインモード - オブジェクト指向ソフトウェア要素、再利用可能)は、23個のデザインパターンの合計を述べました。スキーマの作成(生成に関するパターン)、構造モデル(構造パターン)、モデルの種類(行動パターン):これらのパターンは、次の3つのカテゴリに分けることができます。J2EEデザインパターン:もちろん、私たちは、デザインパターンの別のタイプを説明します。
設計パターンとの関係を以下に示します。
IV。アダプタモード
アダプタモード(アダプタパターン)互換性のないインターフェースの二つの間のブリッジとして使用されます。クライアントは別のインターフェイスを期待していたクラスのインタフェースを変換します。アダプタパターンは、そうでないため、互換性のないインタフェースのこれらのクラスが一緒に仕事に一緒に働くことができないことができます。デザインパターンのこのタイプは、2つの別々のインターフェイスの機能を兼ね備えた構造モデルを、属します。ソフトウェアシステムの主なソリューションは、多くの場合、いくつかの新しい環境に「既存のオブジェクト」、新しい環境要件をしたいとのインターフェースは、今のオブジェクトを満たすことができないです。実際の例については、読者は、メモリカードとノートPCの間のアダプタとしてあります。お使いのメモリーカードリーダーにカード、ノートブックに続いリーダー、あなたがラップトップを介してメモリカードを読み取ることができます。
V. アプリケーションアダプタの例
前述の基本的な考え方では、いくつかのコード例で実際にアプリケーションを示すために、このモードでは、アダプタ部をアダプタモードを紹介します。アンドリュース使用アダプタコードは、アダプタ2つのアプリケーションの実用的な例を以下に説明する、非常に一般的です。
1. リストビュー
① ターゲット用ケースコード:左コントロール読み取り関連列に格納された属性テーブルによれば、データベースに入力されたユーザ情報は、リストビューコントロールに表示されるリレーショナルデータベースのテーブルからデータを読み出します。
② アダプタ実装:
1)データベースへの制御内容を取得します
2)データベースからクエリデータに、データは、データ列のアレイに書き込まれます。
3) 将字符串数组中的值通过ArrayAdapter,显示在ListView控件中.
其中ArrayAdapter在安卓中为适配器的实现类,可以直接使用。
2.RecyclerView
ListView的扩展性相较于RecyclerView不够好,它只能实现数据纵向滚动的效果,如果我们想实现横向滚动和瀑布流的话,ListView是做不到的。
①案例代码目标:将左图控件中用户填写的借款信息按照属性读取存储进数据库关系表的相关列,再从数据库的关系表中读取数据,将其显示在RecyclerView控件中。
②适配器的实现:
1)获取控件内容,写入数据库
2)自定义适配器类在RecyclerView中每一行的显示格式
3)获取自定义每一行要显示的控件,从数据库中读取的数据,将其显示在控件中
4)定义RecyclerView中行行之间的样式,横向滚动或者为瀑布流
六.总结
Adapter 模式的经典实现在于将原本不兼容的接口融合在一起,使之能够很好的进行合作。但是,在实际开发中,Adapter模式也会可以根据实际情况进行适当的变更,最典型的就是 ListView 和 RecyclerView了,这种设计方式使得整个 UI 架构变得非常灵活,能够拥抱变化。所以在实际使用的时候,遵循上面说过的三种场景:
1.系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容;
2.想要建立一个可以重复使用的类,用于与一些彼此之间没有太大联系的一些类,包括一些可能在将来引进的类一起工作;
3.需要一个统一的输出接口,而输入端的类型不可预知。
Adapter模式的优点:
1.更好的复用性:系统需要使用现有的类,而此类的接口不符合系统的需要,那么通过适配器模式就可以让这些功能得到更好的复用;
2.更好的扩展性:在实现适配器功能的时候,可以调用自己开发的功能,从而自然地扩展系统的功能。
复用性:系统需要使用现有的类,而此类的接口不符合系统的需要。那么通过适配器模式就可以让这些功能得到更好的复用。
3.低耦合:无需修改原有代码(遵循开闭原则)
Adapter模式的缺点:
如果在一个系统中过多的使用适配器模式,会让系统非常零乱,不易整体把握。例如,明明看到调用的是 A 接口,其实内部被适配成 B 类的实现,这样就增加了维护性,过多的使用就显得很没有必要了,不如直接对系统进行重构。
适配器模式在实际使用过程中有常用的“两种”方式:对象适配器和类适配器。
对象适配器:
类适配器: