refactored Builder pattern

This commit is contained in:
evitwilly
2022-09-02 11:24:19 +03:00
parent 7484f2f008
commit ee96907ae1
7 changed files with 12 additions and 26 deletions

View File

@ -28,10 +28,9 @@ class Pony1 {
this.city = city
}
fun name() = name
fun family() = family
fun cutieMark() = cutieMark
fun city() = city
override fun toString(): String {
return "$name, $family, $cutieMark, $city"
}
class Builder {
private var name: String = ""
@ -73,10 +72,9 @@ class Pony2 {
private var cutieMark: String = ""
private var city: String = ""
fun name() = name
fun family() = family
fun cutieMark() = cutieMark
fun city() = city
override fun toString(): String {
return "$name, $family, $cutieMark, $city"
}
companion object {
fun newBuilder() = Pony2().Builder()
@ -117,8 +115,7 @@ class Pony3(
private var cutieMark: String = "",
private var city: String = ""
) {
fun name() = name
fun family() = family
fun cutieMark() = cutieMark
fun city() = city
override fun toString(): String {
return "$name, $family, $cutieMark, $city"
}
}

View File

@ -19,10 +19,7 @@ internal class BuilderTest {
.changeFamily(family)
.build()
assertEquals(name, pony.name())
assertEquals(cutieMark, pony.cutieMark())
assertEquals(city, pony.city())
assertEquals(family, pony.family())
assertEquals("$name, $family, $cutieMark, $city", pony.toString())
}
@Test
@ -39,10 +36,7 @@ internal class BuilderTest {
.changeFamily(family)
.build()
assertEquals(name, pony.name())
assertEquals(cutieMark, pony.cutieMark())
assertEquals(city, pony.city())
assertEquals(family, pony.family())
assertEquals("$name, $family, $cutieMark, $city", pony.toString())
}
@Test
@ -54,12 +48,7 @@ internal class BuilderTest {
val pony = Pony3(name, family, city = city)
assertEquals(name, pony.name())
assertEquals("", pony.cutieMark())
assertEquals(city, pony.city())
assertEquals(family, pony.family())
assertEquals("$name, $family, , $city", pony.toString())
}
}