Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * A class to hold our message data
- */
- data class HelloMessageData(val message : String = "Hello Koin!")
- /**
- * Hello Service - interface
- */
- interface HelloService {
- fun hello(): String
- }
- /**
- * Hello Service Impl
- * Will use HelloMessageData data
- */
- class HelloServiceImpl(private val helloMessageData: HelloMessageData) : HelloService {
- override fun hello() = "Hey, ${helloMessageData.message}"
- }
- /**
- * HelloApplication - Application Class
- * use HelloService
- */
- class HelloApplication : KoinComponent {
- // Inject HelloService
- private val helloService by inject<HelloService>()
- // display our data
- fun sayHello() = println(helloService.hello())
- }
- val helloModule = module {
- single { HelloMessageData("hatul") }
- // single { HelloMessageData("hatul") }
- //single { HelloServiceImpl(get()) as HelloService }
- single{ HelloServiceImpl(HelloMessageData("hatul 2")) as HelloService}
- }
- fun main(vararg args: String) {
- startKoin {
- // use Koin logger
- printLogger()
- // declare modules
- modules(helloModule)
- }
- HelloApplication().sayHello()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement