override fun getToDoList(user: User, listName: ListName): ToDoList? = ➏
hub.getList(user, listName)
}
class HttpActions(val env: String = "local"): ZettaiActions { ➐
override val protocol: DdtProtocol = Http(env)
override fun prepare(): DomainSetUp = TODO("launch the app")
override fun getToDoList(user: User, listName: ListName): ToDoList =
TODO("not implemented yet")
}
➊ 우리가 이미 정의한 메서드들이 들어 있는 제네릭 액션의 인터페이스다. DdtActions를 상속해야만 한다.
➋ 각각의 구체적 액션은 ZettaiActions 인터페이스를 상속해야 한다.
➌ DdtActions의 각 구현은 서로 다른 프로토콜에서 작동한다. 이는 애플리케이션의 도메인과만 상호작용한다.
➍ 액션을 준비하는 메서드에서 몇 가지 설정 작업을 수행한다. 도메인 전용 액션에서는 아무것도 필요하지 않다.