Sobes.tech
Junior

Do czego służą przypadki w Flutterze?

sobes.tech AI

Odpowiedź od AI

Przypadki użycia (use cases) stanowią warstwę logiki biznesowej oddzieloną od UI i danych. Opisują konkretne działania użytkownika lub systemu, które są wykonywane na danych pobranych z repozytoriów.

Zalety korzystania z przypadków użycia:

  • Czystość i modularność: Oddzielenie reguł biznesowych od UI sprawia, że kod jest bardziej zrozumiały i łatwiejszy w utrzymaniu.
  • Testowalność: Logika biznesowa zawarta w przypadkach użycia jest łatwa do testowania w izolacji.
  • Ponowne użycie: Przypadki użycia mogą być wykorzystywane w różnych częściach aplikacji lub nawet w innych aplikacjach.
  • Czytelność: Nazwy przypadków użycia często odzwierciedlają zamiar użytkownika lub systemu, co poprawia czytelność kodu.

Zazwyczaj przypadki użycia:

  • Zależne od jednego lub więcej repozytoriów w celu pobrania danych.
  • Wykonują operacje na tych danych (np. filtrowanie, sortowanie, transformacja).
  • Nie znają UI i nie wchodzą z nim w bezpośrednią interakcję.
  • Są używane przez prezentery lub dostawców stanu (np. BLoC, Riverpod).

Przykład struktury przypadku użycia:

// Abstrakcyjna klasa bazowa dla przypadków użycia zwracających wartości przyszłe.
abstract class FutureUseCase<T, P> {
  Future<T> call(P params);
}

// Konkretne przypadki użycia do pobrania listy użytkowników.
class GetUsersUseCase extends FutureUseCase<List<User>, NoParams> {
  final UserRepository userRepository;

  GetUsersUseCase(this.userRepository);

  @override
  Future<List<User>> call(NoParams params) async {
    return await userRepository.getUsers();
}
}

// Klasa bez parametrów dla przypadków użycia, które nie wymagają danych wejściowych.
class NoParams {}