์ ์
ํ ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ํฌ๋ผ์ด์ธํธ์์ ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ก ๋ณํ. ์ธํฐํ์ด์ค ํธํ์ฑ ๋ฌธ์ ๋ก ๊ฐ์ด ์ธ ์ ์๋ ํด๋์ค๋ค์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
๊ฐ๋จ ์์ ์ฝ๋
import kotlin.test.*
import kotlin.time.*
interface Duck {
fun quack()
fun fly()
}
class MallardDuck : Duck {
override fun quack() {
println("Quack")
}
override fun fly() {
println("I'm flying")
}
}
interface Turkey {
fun gobble()
fun fly()
}
class WildTurkey : Turkey {
override fun gobble() {
println("Gobble")
}
override fun fly() {
println("I'm flying")
}
}
class TurkeyAdapter(val turkey : Turkey) : Duck {
override fun quack() {
turkey.gobble()
}
override fun fly() {
turkey.fly()
}
}
fun actionDuck(duck : Duck) {
duck.quack()
duck.fly()
}
fun main() {
val duck = MallardDuck()
val turkey = WildTurkey()
val turkeyAdapter = TurkeyAdapter(turkey)
actionDuck(duck)
actionDuck(turkeyAdapter)
}
'learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
powerset (0) | 2020.10.18 |
---|---|
ํธ์ถ ํด๋์ค์ ๋ฉ์๋ ์ด๋ฆ ์ถ๋ ฅ (0) | 2020.09.09 |
[์๊ณ ๋ฆฌ์ฆ] ๋ฌธ์์ด ํ์์ฉ ์๋ฃ๊ตฌ์กฐ Trie (0) | 2020.09.08 |
MVVM ์ ์ฉ ์ํ ํ๋ก์ ํธ ๋ง๋ค์ด๋ณด๊ธฐ (0) | 2020.08.24 |