Skip to content

Commit 0169727

Browse files
author
mugkulee
committed
adapter
1 parent 096dc93 commit 0169727

18 files changed

+501
-241
lines changed

.idea/workspace.xml

Lines changed: 330 additions & 240 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package kotlinex.observer
2+
3+
import adapter.old.*
4+
5+
fun main(args: Array<String>) {
6+
7+
println("====== old ======")
8+
val duck: Duck = MallardDuck()
9+
val turkey: Turkey = WildTurkey()
10+
val turkeyToDuckAdapter: Duck = TurkeyAdapter(turkey)
11+
println("old === duck === ${duck.fly()} :: ${duck.quack()}")
12+
println("old === turkey === ${turkey.fly()} :: ${turkey.gobble()}")
13+
println("old === turkeyToDuckAdapter === ${turkeyToDuckAdapter.fly()} :: ${turkeyToDuckAdapter.quack()}")
14+
15+
println("====== NEW ======")
16+
17+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package adapter.old
2+
3+
interface Duck {
4+
fun quack()
5+
fun fly()
6+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package adapter.old
2+
3+
class MallardDuck: Duck{
4+
override fun quack() {
5+
println("Duck quack")
6+
}
7+
8+
override fun fly() {
9+
println("Duck fly")
10+
}
11+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package adapter.old
2+
3+
interface Turkey {
4+
fun gobble()
5+
fun fly()
6+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package adapter.old
2+
3+
class TurkeyAdapter(val turkey: Turkey): Duck{
4+
override fun quack() {
5+
println("TurkeyAdapter quack")
6+
turkey.gobble()
7+
}
8+
9+
override fun fly() {
10+
println("TurkeyAdapter fly")
11+
turkey.fly()
12+
}
13+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package adapter.old
2+
3+
class WildTurkey: Turkey{
4+
override fun gobble() {
5+
println("Turkey gobble")
6+
}
7+
8+
override fun fly() {
9+
println("Turkey fly")
10+
}
11+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package kotlinex.observer
2+
3+
import command.old.*
4+
5+
fun main(args: Array<String>) {
6+
7+
println("====== old ======")
8+
val remote: SimpleRemoteControl = SimpleRemoteControl()
9+
val lightOnCommand: LightOnCommand = LightOnCommand(Light())
10+
val garageDoorCommand: GarageDoorCommand = GarageDoorCommand(GarageDoor())
11+
12+
remote.slot = lightOnCommand
13+
remote.buttonWasPressed()
14+
15+
remote.slot = garageDoorCommand
16+
remote.buttonWasPressed()
17+
18+
println("====== NEW ======")
19+
val remoteK: SimpleRemoteControlK<Unit> = SimpleRemoteControlK()
20+
remoteK.buttonWasPressed({println("test ing...")})
21+
22+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package command.old
2+
3+
class SimpleRemoteControlK<R> {
4+
fun buttonWasPressed(func: () -> R): Unit {
5+
func.invoke()
6+
}
7+
}

0 commit comments

Comments
 (0)