Sobes.tech
Junior

Milleks on Flutter'is juhtumid vajalikud?

sobes.tech AI

Vastus AI-lt

Kaasused (use cases) on äriloogika kiht, mis on eraldatud kasutajaliidesest (UI) ja andmetest. Nad kirjeldavad konkreetseid kasutaja või süsteemi tegevusi, mis toimuvad andmetega, mis on saadud hoidlatest.

Kaasuste kasutamise eelised:

  • Puhasus ja modulaarsus: Ärireeglite eraldamine UI-st muudab koodi arusaadavamaks ja hooldatavamaks.
  • Testitavus: Kaasudes kapseldatud äriloogikat on lihtne isoleeritult testida.
  • Taaskasutus: Kaasuseid saab kasutada erinevates rakenduse osades või isegi teistes rakendustes.
  • Lugemise lihtsus: Kaasuste nimed peegeldavad sageli kasutaja või süsteemi kavatsust, mis parandab koodi loetavust.

Tavaliselt:

  • Sõltuvad ühest või mitmest hoidlast andmete saamiseks.
  • Teostavad nende andmetega operatsioone (näiteks filtreerimine, sortimine, teisendamine).
  • Ei tea UI-st ega suhtle sellega otse.
  • Kasutatakse esitlejate või olekupakkujate (näiteks BLoC, Riverpod) poolt.

Kaasuse struktuuri näide:

// Abstraktne baasklass tulevikuväärtuste tagastamiseks.
abstract class FutureUseCase<T, P> {
  Future<T> call(P params);
}

// Konkreetne kaasus kasutajate nimekirja saamiseks.
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();
  }
}

// Parameetriteta klass kaasustele, mis ei vaja sisendandmeid.
class NoParams {}