Kotlin Springboot -- Part 6 드라이버 및 엔티티 の データクラスト インスタンスを 作り Gateway 및 Domain に変換する
왜
드라이버 와 도메인 を返すのをやめて, 엔티티 を返すようにする.
いままでは 드라이버 で 도메인 を返していたが
criーンアーキテクチャ的には Driver が Domain にアクセスで きててはいけないから.
엔터티 とは?
データの実態.
DB から返ってくるもの.
도메인 と同じ 데이터 클래스 ではあるが
data class Persons(val list: List<Person>)
data class Person(val name: Name, val age: Age)
data class Name(val value: String)
data class Age(val value: Int)
오브젝트指向な 도메인 で作られる詳細なものと違い
こんなに最小単位迄作らなくて良い.
data class PersonEntity(val name: String , val age: Int)
これくらいまでで良いと解釈した.
운전사
// private val data:Persons = Persons(listOf(
// (Person(Name("taro"), Age(12))),
// (Person(Name("hanako"), Age(10))),
// ))
このように갓트리드메인つけて作っいた
인메모리노데이타를
data class PersonEntity(val name: String , val age: Int)
val taro = PersonEntity("taro", 3)
val hana = PersonEntity("hana", 5)
val persons = listOf<PersonEntity>(taro,hana)
엔티티 を作って, そこからinstansでつくってまとめるようにした.
fun findAll(): List<PersonEntity> {
return persons
}
そしてこれを Gateway に返す.
게이트웨이
PersonsEntity で受け取ったものを
Domain の Persons の ナ カ で 展開 し て, 도메인 の 사람 を つ け て 返 す.
これで Entity から 도메인 に変換できている.
class PersonsGateway(
val personsDriver: PersonsDriver
) {
fun getAllPersons():Persons {
val persons = personsDriver.findAll()
return Persons(persons.map { person ->
Person(
Name(person.name),
Age(person.age)
)
})
}
}
まとめ
인메모리로 CA をする場合は
드라이버 で Entity を 데이터 클래스 で つくり
そのインスタンスを返す.
そして 게이트웨이 에서 도메인 にして返す.
Reference
이 문제에 관하여(Kotlin Springboot -- Part 6 드라이버 및 엔티티 の データクラスト インスタンスを 作り Gateway 및 Domain に変換する), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaede_io/kotlin-springboot-part-6-driver-de-entity-nodetakurasutoinsutansuwozuo-ri-gateway-de-domain-nibian-huan-suru-39ic텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)