ubu
04/04/2018, 3:52 PMabstract class Provider<T> {
var original: T? = null
abstract fun create(): T
fun get(): T = original ?: create().apply { original = this }
fun getNewInstance() : T = create().apply { original = this }
fun lazyGet(): Lazy<T> = lazy { get() }
fun destroy() { original = null }
}