Verwenden Sie den Adapter, wenn Sie eine Schnittstelle haben, die Sie nicht ändern können, die Sie jedoch verwenden müssen. Sehen Sie es so, als wären Sie der neue Mann in einem Büro und Sie können die grauen Haare nicht dazu bringen, Ihren Regeln zu folgen - Sie müssen sich an ihre anpassen. Hier ist ein echtes Beispiel aus einem echten Projekt, an dem ich irgendwann gearbeitet habe, wo die Benutzeroberfläche eine Selbstverständlichkeit ist.
Sie haben eine Anwendung, die alle Zeilen in einer Datei in eine Listendatenstruktur einliest und in einem Raster anzeigt (nennen wir die zugrunde liegende Datenspeicherschnittstelle IDataStore). Der Benutzer kann durch diese Daten navigieren, indem er auf die Schaltflächen "Erste Seite", "Vorherige Seite", "Nächste Seite", "Letzte Seite" klickt. Alles funktioniert gut.
Jetzt muss die Anwendung mit Produktionsprotokollen verwendet werden, die zu groß sind, um in den Speicher eingelesen zu werden, aber der Benutzer muss immer noch darin navigieren! Eine Lösung wäre, einen Cache zu implementieren, in dem die erste Seite, die nächste, die vorherige und die letzte Seite gespeichert werden. Wenn der Benutzer auf "Nächste Seite" klickt, wird die Seite aus dem Cache zurückgegeben und der Cache aktualisiert. Wenn sie auf die letzte Seite klicken, wird die letzte Seite aus dem Cache zurückgegeben. Im Hintergrund haben wir einen Filestream, der die ganze Magie macht. Auf diese Weise haben wir im Gegensatz zur gesamten Datei nur vier Seiten im Speicher.
Sie können einen Adapter verwenden, um diese neue Cache-Funktion zu Ihrer Anwendung hinzuzufügen, ohne dass der Benutzer dies bemerkt. Wir erweitern den aktuellen IDataStore und nennen ihn CacheDataStore. Wenn die zu ladende Datei groß ist, verwenden wir CacheDataStore. Wenn wir die ersten, nächsten, vorherigen und letzten Seiten anfordern, werden die Informationen an unseren Cache weitergeleitet.
Und wer weiß, morgen möchte der Chef anfangen, die Dateien aus einer Datenbanktabelle zu lesen. Alles, was Sie tun, ist, IDataStore wie für Cache auf SQLDataStore zu erweitern und die Verbindung im Hintergrund einzurichten. Wenn sie auf Nächste Seite klicken, generieren Sie die erforderliche SQL-Abfrage, um die nächsten paar hundert Zeilen aus der Datenbank abzurufen.
Im Wesentlichen hat sich die ursprüngliche Oberfläche der Anwendung nicht geändert. Wir haben einfach moderne und coole Funktionen angepasst, um sie zu verwenden und gleichzeitig die alte Benutzeroberfläche beizubehalten.