Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. /**
  2. * A class to hold our message data
  3. */
  4. data class HelloMessageData(val message : String = "Hello Koin!")
  5.  
  6. /**
  7. * Hello Service - interface
  8. */
  9. interface HelloService {
  10. fun hello(): String
  11. }
  12.  
  13.  
  14. /**
  15. * Hello Service Impl
  16. * Will use HelloMessageData data
  17. */
  18. class HelloServiceImpl(private val helloMessageData: HelloMessageData) : HelloService {
  19.  
  20. override fun hello() = "Hey, ${helloMessageData.message}"
  21. }
  22.  
  23.  
  24. /**
  25. * HelloApplication - Application Class
  26. * use HelloService
  27. */
  28. class HelloApplication : KoinComponent {
  29.  
  30. // Inject HelloService
  31. private val helloService by inject<HelloService>()
  32.  
  33. // display our data
  34. fun sayHello() = println(helloService.hello())
  35. }
  36.  
  37. val helloModule = module {
  38.  
  39. single { HelloMessageData("hatul") }
  40. // single { HelloMessageData("hatul") }
  41.  
  42. //single { HelloServiceImpl(get()) as HelloService }
  43. single{ HelloServiceImpl(HelloMessageData("hatul 2")) as HelloService}
  44. }
  45.  
  46. fun main(vararg args: String) {
  47.  
  48. startKoin {
  49. // use Koin logger
  50. printLogger()
  51. // declare modules
  52. modules(helloModule)
  53. }
  54.  
  55. HelloApplication().sayHello()
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement