Kotlin Springboot -- Part 5 Rest で全てのinstancesを作って Driver まで動くようにする
왜
컴패니언 오브젝트 を使うと外から呼び出しやすいが、단위 테스트を書く時にうまくいかないため.
全 て クラスの men バ ー関 数 で 作っ て, そ の インスタンスを 作っ て使うように修正する.
쉬다
RestController 와 Template 없이 간단하게 만들었습니다.
personHoge = PersonHoge()
PersonHoge というクラスを使って変数を作る ことで、
そのクラスのインスタンスを作ることができる.
これでまずは Driver の インスタンスを引数なしで作成する.
다음 Gateway 의 인스턴스를, Driver 의 인스턴스를 引数に渡して作成する.
さらに Usecase のinstancesを、Gateway のinstancesを引数に渡して作成する.
作成された Usecase のinstancesの中のmenba関数の getAllPersons を呼び出して, 中身をとって return する.
これで 동반자 개체 を使わなくても
Usecase 와 Gateway が呼べて
게이트웨이 で 드라이버 が呼べる.
@RestController
class PersonHandler {
@GetMapping("/")
fun root(): String {
return "index2"
}
@GetMapping("/persons")
@ResponseBody
fun getPersons(): String {
val personsDriver = PersonsDriver()
val personsGateway = PersonsGateway(personsDriver)
val personsUsecase = PersonsUsecase(personsGateway)
val persons = personsUsecase.getAllPersons()
print(persons)
return persons.toString()
}
}
유스케이스
Gateway の インスタンスを受け取るように作る.
class PersonsUsecase(val personsGateway: PersonsGateway) {
fun getAllPersons():Persons {
return personsGateway.getAllPersons()
}
}
게이트웨이
Usecase 에서 instancesで呼び出すようになっため
동반객체 は必要なくなった.
渡された Driver のinstantsを使って findAll した結果を return する.
class PersonsGateway(
val personsDriver: PersonsDriver
) {
fun getAllPersons():Persons {
return personsDriver.findAll()
}
}
운전사
最終地点なので何もinstantsを受け取らない.
동반자 だけ解除した.
class PersonsDriver() {
private val data:Persons = Persons(listOf(
(Person(Name("taro"), Age(12))),
(Person(Name("hanako"), Age(10))),
))
fun findAll():Persons {
return data
}
}
まとめ
코틀린 스프링부트 で
나머지 <- 사용 사례 <- 게이트웨이 <- 드라이버
と伝搬していくためには
쉬다 で
Driver のクラスから引数なしで Driver の instantsを作り
Gateway のクラスから Driver の instanceを引数にして Gateway の インスタンスを作り
Usecase のクラスから Gateway の instantsを引数にして Usecase の instantsを作り
유스케이스 のinstancesの中身を使う.
Reference
이 문제에 관하여(Kotlin Springboot -- Part 5 Rest で全てのinstancesを作って Driver まで動くようにする), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaede_io/kotlin-springboot-part-5-rest-dequan-tenoinsutansuwozuo-tute-driver-madedong-kuyounisuru-5di0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)