Junior — Middle
Hogyan magyaráznád el az Adapter mintázat fogalmát a szoftverrendszerek tervezésének kontextusában?
sobes.tech MI
Válasz az MI-től
Az Adapter minta arra szolgál, hogy egy osztály interfészét az ügyfél által elvárt interfésszé alakítsa. Ez lehetővé teszi, hogy inkompatibilis interfészekkel dolgozzunk anélkül, hogy a meglévő kódot módosítanánk.
A Flutter például, ha van egy külső osztályod egy olyan módszerrel, ami nem egyezik a te interfészeddel, létrehozhatsz egy adaptert, amely "fordítja" a hívásokat.
Példa:
// Külső osztály más interfésszel
class OldApi {
String fetchData() => 'Régi API adatai';
}
// A mi interfésze
abstract class DataSource {
String getData();
}
// Adapter
class ApiAdapter implements DataSource {
final OldApi oldApi;
ApiAdapter(this.oldApi);
@override
String getData() {
return oldApi.fetchData();
}
}
void main() {
OldApi oldApi = OldApi();
DataSource adapter = ApiAdapter(oldApi);
print(adapter.getData()); // Kiírja: Régi API adatai
}
Így az Adapter minta segít az inkompatibilis komponensek integrálásában, miközben megőrzi az architektúra tisztaságát.