我想将Singleton类的功能继承到另一个Singleton中,但这是不可能的(我理解原因(。
然后我决定尝试使用委派。编译器并没有抱怨,我只是想看看会发生什么
您可以在下面找到更多信息:
- 接口
ThrottleBrake
(实现( - 扩展上述接口的单例
ThrottleBrakeImpl
(实现( -
另一个单独的
ElectronicThrottleBrakeImpl
使用了以上两种方法,如下一个代码片段所示:object ElectronicThrottleBrakeImpl: ThrottleBrake by ThrottleBrakeImpl { override fun throttle(direction: String, value: Int): String { return ThrottleBrakeImpl.throttle(direction, value) }}
但我想知道这是否是一个好的做法。我应该继续这样的项目,还是应该找到更好的解决方案?
实际上,我使用类似的星座来拥有类似可扩展枚举的东西。
enum class NonExtendable {
A, B
}
变为:
object Extendables {
object A : Extendable by ExtendableImpl()
object B : Extendable by ExtendableImpl()
}
interface Extendable
class ExtendableImpl : Extendable
并且我现在能够传递额外的~enum值C
,如下所示:
object C : Extendable by ExtendableImpl()
我想很多其他人也将其记录为可扩展枚举,但我找不到一个好的来源(我在防火墙后面(来支持它作为良好的实践;-(
我想知道你为什么一开始就要求单身。但如果它们像enum,那么我会说这种做法绝对可以;-((否则我会惹上麻烦(