Sobes.tech
Junior

¿Para qué sirven los casos en Flutter?

sobes.tech AI

Respuesta de la IA

Los casos de uso representan una capa de lógica empresarial separada de la interfaz de usuario y los datos. Describen acciones específicas del usuario o del sistema que se realizan con datos obtenidos de los repositorios.

Ventajas del uso de casos de uso:

  • Claridad y modularidad: Separar las reglas de negocio de la interfaz de usuario hace que el código sea más comprensible y fácil de mantener.
  • Testabilidad: La lógica de negocio encapsulada en los casos de uso es fácil de probar de forma aislada.
  • Reutilización: Los casos de uso pueden ser utilizados en diferentes partes de la aplicación o incluso en otras aplicaciones.
  • Legibilidad: Los nombres de los casos de uso a menudo reflejan la intención del usuario o del sistema, lo que mejora la legibilidad del código.

Normalmente, los casos de uso:

  • Dependen de uno o varios repositorios para obtener datos.
  • Realizan operaciones sobre estos datos (por ejemplo, filtrado, ordenamiento, transformación).
  • No conocen la interfaz de usuario y no interactúan directamente con ella.
  • Son utilizados por presentadores o proveedores de estado (por ejemplo, BLoC, Riverpod).

Ejemplo de estructura de un caso de uso:

// Clase base abstracta para casos de uso que devuelven valores futuros.
abstract class FutureUseCase<T, P> {
  Future<T> call(P params);
}

// Caso de uso concreto para obtener una lista de usuarios.
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();
  }
}

// Clase sin parámetros para casos de uso que no requieren datos de entrada.
class NoParams {}