Slide 42
Slide 42 text
Use Case Interactor
func (u *UsecaseInteractor) Deposit() error {
in, err := u.controller.ReadDepositInput()
if err != nil {
return err
}
out, err := u.usecase.Deposit(in)
if err != nil {
return err
}
return u.presenter.WriteDepositOutput(out)
}
Use Case Interactorの実装
Use Case Interactorで定義したインターフェースに
ControllerとPresenterは実装をするため、ここで依存性の
逆転が発生し、外部の環境に依存する実装が外側のレイ
ヤにまとまる。
Use Caseはシンプルな値のやり取りで完結するため、
入出力の複雑さがビジネスロジックに介入しない。