Skip to content

Instantly share code, notes, and snippets.

@alfianyusufabdullah
Created September 19, 2021 04:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alfianyusufabdullah/5fc11e795aee8b3ba4cb6f1e9c056c5a to your computer and use it in GitHub Desktop.
Save alfianyusufabdullah/5fc11e795aee8b3ba4cb6f1e9c056c5a to your computer and use it in GitHub Desktop.
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)
}
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