Если котлин под JVM, то можно что то такое, на точность кода не претендую просто как пример:
class Multitone {
companion object {
private val map = ConcurrentHashMap<Int, Multitone>()
fun getInstance(i: Int) = map.computeIfAbsent(1) {
Multitone()
}
}
}