Sobes.tech
Junior

Зашто су случајеви у Flutter-у?

sobes.tech АИ

Одговор од АИ

Крајеви (use cases) представљају слој пословне логике одвојен од UI и података. Они описују конкретне акције корисника или система које се изводе са подацима добијеним из репозиторија.

Предности коришћења крајева:

  • Чистоћа и модуларност: Одвајање пословних правила од UI чини код разумљивијим и лакшим за одржавање.
  • Тестираност: Пословна логика ускладиштена у крајевима лако се тестира у изолацији.
  • Поновна употребљивост: Крајеви могу бити коришћени у различитим деловима апликације или чак у другим апликацијама.
  • Читљивост: Имена крајева често одражавају намјеру корисника или система, што побољшава читљивост кода.

Обично, крајеви:

  • Зависи од једног или више репозиторија за добијање података.
  • Извршава операције над тим подацима (нпр., филтрирање, сортирање, трансформација).
  • Не знају за UI и не интерагују директно са њим.
  • Користе их презентери или провајдери стања (нпр., BLoC, Riverpod).

Пример структуре краја:

// Аборктна основна класа за крајеве који враћају будуће вредности.
abstract class FutureUseCase<T, P> {
  Future<T> call(P params);
}

// Конкретан крај за добијање листе корисника.
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();
  }
}

// Класа без параметара за крајеве који не захтевају улазне податке.
class NoParams {}