我刚看到这个词的时候感觉很蒙,没见过这样的叫法啊,类还叫委托,于是就研究了一会,这里说一下我自己对类委托的认识,我感觉类委托其实就是扩展了一个类型,为它能添加新的功能并且能不去继承这个类,从而不过多的重写方法, 只需要扩展自己需要添加功能的方法就行了。
例子
class ClassDelegate<T>(val innerSet: MutableCollection<T> = HashSet()): MutableCollection<T> by innerSet {
var objectsAdded = 0
override fun add(element: T): Boolean {
objectsAdded++
return innerSet.add(element)
}
override fun addAll(elements: Collection<T>): Boolean {
objectsAdded += elements.size
return innerSet.addAll(elements)
}
}