在 Kotlin 中,我想为具有一组相关函数的类添加一个“命名空间”。我的类的客户端将使用该命名空间来帮助分类他们想要执行的操作类型....
在 Kotlin 中,我想为具有一组相关函数的类添加一个“命名空间”。我的类的客户端将使用该命名空间来帮助分类他们想要执行的操作类型。(我知道您认为这些函数应该放在不同的类中,问题解决了。但出于其他原因,将所有函数放在一个类中更方便)。
因此,我可能有一个 Uber
包含 fooInsert
fooOpen
fooDispose
和 的 barInsert
barTerminate
类 barHop
。如您所见,它们没有通用接口。只是一堆由于某种原因属于同一类的函数。有些函数与其他函数有亲和力(即这些 fooXXX
函数“属于”一起,就像“barYYY”函数一样)。
我想到的是:
class Uber {
inner class FooNamespace {
fun insert(): Unit {}
fun open(): Unit {}
fun dispose(): Unit {}
}
val foo = FooNamespace()
inner class BarNamespace {
fun insert(): Unit {}
fun terminate(): Unit {}
fun hop(): Unit {}
}
val bar = BarNamespace()
}
该类的用户可以做这样的事情:
val uber = Uber()
uber.foo.insert()
uber.bar.hop()
我想要的是将 inner class ...
and val xxx = XxxNamespace()
成一个表达式。例如:
// This doesn't actually compile
val foo = object: inner class {
fun insert(): Unit {}
fun open(): Unit {}
fun dispose(): Unit {}
}