I’ve implemented something like this: ```abstract...
# announcements
u
I’ve implemented something like this:
Copy code
abstract 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 }
}