Clean Architectureintermediate

UseCase Base Class

Abstract base class for use cases following Clean Architecture. Handles single input/output with Either for error handling.

#clean-architecture#use-case#either
dart
1import 'package:dartz/dartz.dart';
2 
3abstract class UseCase<Type, Params> {
4 Future<Either<Failure, Type>> call(Params params);
5}
6 
7// For use cases with no parameters
8class NoParams {
9 const NoParams();
10}
11 
12// Example Failure class
13abstract class Failure {
14 final String message;
15 const Failure(this.message);
16}
17 
18class ServerFailure extends Failure {
19 const ServerFailure([super.message = 'Server error occurred']);
20}
21 
22class CacheFailure extends Failure {
23 const CacheFailure([super.message = 'Cache error occurred']);
24}