Sobes.tech
Junior

Mire jók a Flutter-ben a esetek?

sobes.tech MI

Válasz az MI-től

Használati esetek (use cases) egy üzleti logika réteget képviselnek, amely el van különítve a UI-tól és az adatoktól. Ezek leírják a felhasználó vagy rendszer konkrét műveleteit, amelyeket az adatokkal végeznek, amelyeket a tárházakból szereznek be.

A használati esetek alkalmazásának előnyei:

  • Tisztaság és modularitás: Az üzleti szabályok elválasztása a UI-tól könnyebben érthető és karbantartható kódot eredményez.
  • Tesztelhetőség: A használati esetekbe zárt üzleti logika könnyen izolálható és tesztelhető.
  • Újrahasználhatóság: A használati esetek különböző részekben vagy akár más alkalmazásokban is felhasználhatók.
  • Olvashatóság: A használati esetek nevei gyakran tükrözik a felhasználó vagy rendszer szándékát, javítva a kód olvashatóságát.

Általában a használati esetek:

  • Egy vagy több tárházra támaszkodnak az adatok beszerzése érdekében.
  • Operációkat végeznek ezeken az adatokon (pl. szűrés, rendezés, átalakítás).
  • Nem ismerik a UI-t, és nem lépnek vele közvetlen kapcsolatba.
  • Prezentálók vagy állapot szolgáltatók (pl. BLoC, Riverpod) által kerülnek használatra.

Egy használati eset szerkezetének példája:

// Absztrakt alap osztály a jövőbeli értékeket visszaadó használati esetekhez.
abstract class FutureUseCase<T, P> {
  Future<T> call(P params);
}

// Konkrét használati eset a felhasználók listájának lekéréséhez.
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();
  }
}

// Paraméter nélküli osztály olyan használati esetekhez, amelyek nem igényelnek bemeneti adatokat.
class NoParams {}