Sobes.tech
Junior

Na co jsou v Flutteru případy?

sobes.tech AI

Odpověď od AI

Použití případy představují vrstvu podnikové logiky oddělenou od UI a dat. Popisují konkrétní akce uživatele nebo systému, které jsou prováděny s daty získanými z úložišť.

Výhody používání případů použití:

  • Čistota a modularita: Oddělení podnikových pravidel od UI činí kód přehlednějším a snáze udržovatelným.
  • Testovatelnost: Podniková logika zakomponovaná do případů použití je snadno testovatelná izolovaně.
  • Opětovné použití: Případy použití mohou být využity v různých částech aplikace nebo dokonce v jiných aplikacích.
  • Čitelnost: Názvy případů použití často odrážejí záměr uživatele nebo systému, což zlepšuje čitelnost kódu.

Obvykle:

  • Závisí na jednom nebo více úložištích pro získání dat.
  • Provádí operace nad těmito daty (například filtrování, třídění, transformace).
  • Neznají UI a s ním přímo neinteragují.
  • Používají je prezentátoři nebo poskytovatelé stavu (například BLoC, Riverpod).

Příklad struktury případu použití:

// Abstraktní základní třída pro případy použití, které vracejí budoucí hodnoty.
abstract class FutureUseCase<T, P> {
  Future<T> call(P params);
}

// Konkrétní případ použití pro získání seznamu uživatelů.
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();
  }
}

// Třída bez parametrů pro případy použití, které nevyžadují vstupní data.
class NoParams {}