変更できないが使用する必要があるインターフェイスがある場合は、Adapter を使用します。あなたはオフィスの新しい男であり、白髪をあなたのルールに従わせることはできません.あなたは彼らのルールに適応しなければなりません. これは、私がいつか取り組んだ実際のプロジェクトからの実際の例で、ユーザー インターフェイスが与えられています。
ファイル内のすべての行を List データ構造に読み取り、それらをグリッドに表示するアプリケーションがあります (基になるデータ ストア インターフェイス IDataStore を呼び出しましょう)。ユーザーは、「最初のページ」、「前のページ」、「次のページ」、「最後のページ」のボタンをクリックして、これらのデータをナビゲートできます。すべて正常に動作します。
ここで、メモリに読み込むには大きすぎる運用ログでアプリケーションを使用する必要がありますが、ユーザーは引き続きログをナビゲートする必要があります。1 つの解決策は、最初のページ、次のページ、前のページ、および最後のページを格納するキャッシュを実装することです。ユーザーが「次のページ」をクリックすると、キャッシュからページが返され、キャッシュが更新されます。最後のページをクリックすると、キャッシュから最後のページが返されます。バックグラウンドでは、すべての魔法を実行するファイルストリームがあります。そうすることで、ファイル全体ではなく、メモリ内に 4 ページしかありません。
アダプターを使用すると、ユーザーが気付かないうちに、この新しいキャッシュ機能をアプリケーションに追加できます。現在の IDataStore を拡張し、それを CacheDataStore と呼びます。ロードするファイルが大きい場合は、CacheDataStore を使用します。First、Next、Previous、および Last ページのリクエストを行うと、情報はキャッシュにルーティングされます。
明日、上司はデータベース テーブルからファイルの読み取りを開始したいと考えています。キャッシュの場合と同様に IDataStore を SQLDataStore に拡張し、バックグラウンドで接続をセットアップするだけです。[次のページ] をクリックすると、データベースから次の数百行を取得するために必要な SQL クエリが生成されます。
基本的に、アプリケーションの元のインターフェイスは変更されていません。従来のインターフェースを維持しながら、モダンでクールな機能を単純に適応させました。