title: "singleton" pattern method best way in kotlin
body: <p>Can someone help me to find a better way to create a single instance in Kotlin?</p>
  
  <pre><code>class Bar(private val blub) {
  
     private lateinit var foo: FooService
     private lateinit var doo: DooService
  
     override fun getFooService(): FooService {
         if (!::foo.isInitialized) {
             foo = FooService(blub)
         }
         return foo
     }
  
      override fun getDooService(): DooService {
         if (!::doo.isInitialized) {
             doo = DooService(blub)
         }
         return doo
     }
  }
  </code></pre>
  
  <p><strong>Edit:</strong>
  I don't want to init every object at beginning - should be only done when needed.</p>
  
  <p>Thanks in advance!</p>