Я хотел бы создать интерфейс, который заставляет каждую его реализацию быть одноэлементной:
interface MyInterface {
val myValue: Int
}
object MySingleton: MyInterface {
override val myValue: String = "My value"
}
Однако с помощью вышеупомянутого интерфейса я также могу создать класс следующим образом:
class NotMySingleton: MyInterface {
override val myValue: String = "My value"
}
Как бы я go о применении такого правила в MyInterface
?