Sobes.tech
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.