Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface UseCase <in Request, out Response> {
- fun handleRequest(request: Request) : Response
- }
- interface UseCaseResponseHandler <in Response> {
- fun handleResponse(response: Response)
- }
- class UseCaseRunner <Request, Response> {
- @Inject lateinit var runner: Runner
- fun runUseCase(
- useCase: UseCase<Request, Response>,
- request: Request,
- responseHandler: UseCaseResponseHandler<Response>) {
- runner.run {
- val response = useCase.handleRequest(request)
- responseHandler.handleResponse(response)
- }
- }
- }
Add Comment
Please, Sign In to add comment