Created
September 19, 2021 04:41
-
-
Save alfianyusufabdullah/5fc11e795aee8b3ba4cb6f1e9c056c5a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
interface Database { | |
fun read(): String | |
fun create(): String | |
} | |
class MySQL: Database { | |
override fun read() = "MYSQL read database" | |
override fun create() = "MYSQL create database" | |
} | |
class MongoDB: Database { | |
override fun read() = "MongoDB read database" | |
override fun create() = "MongoDB create database" | |
} | |
class Controller(private val database: Database) { | |
fun createData() = database.create() | |
fun readData() = database.read() | |
} | |
fun main() { | |
val controller = Controller(MySQL()) | |
val result = controller.readData() | |
println(result) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Database { | |
fun create() = "create database" | |
fun read() = "read database" | |
} | |
class Controller { | |
private val database = Database() | |
fun createData() = database.create() | |
fun readData() = database.read() | |
} | |
fun main() { | |
val controller = Controller() | |
val result = controller.readData() | |
println(result) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment