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