UseCase

  • Designed with only domain logic in mind.

  • A single UseCase has only one clear use.

  • A UseCase has only one method.

  • It must be organized as an interface.

public interface ISignInUseCase
{
    public UniTask<SignInResponseData> SignIn(SignInRequestData signInData);

    public class SignInRequestData
    {
        public string ID { get; private set; }
        public string Password { get; private set; }
        
        public SignInRequestData(string id, string password)
        {
            ID = id;
            Password = password;
        }
    }
    
    public class SignInResponseData
    {
        public bool IsSuccess { get; private set; }
        
        public SignInResponseData(bool isSuccess)
        {
            IsSuccess = isSuccess;
        }
    }
}

Last updated