Taiwan Kotlin User Group

Logo

Taiwan Kotlin User Group 的網站,在台灣推廣 Kotlin 程式語言,舉辦相關活動。如果對 Kotlin 有興趣,想要多瞭解一些,歡迎來我們的社群一起聚會!

View My GitHub Profile

Kotlin Delegation 範例

在軟體開發上

委派(delegation)模式是一個很有用的模式

比方說 Java 的實作

interface Print {
	void print();
}

class Delegate implements Print {
	void print() { 
		System.out.print("被委派者"); 
	}
}

class Delegator implements Print {
	Delegate delegate = new Delegate();
	void print() {
		delegate.print();
	} 
}

Printer printer = new Printer();
printer.print(); // 被委派者

在 Kotlin 內,內建支援委派的原生語法

寫起來更加直觀

interface Print {
    fun print()
}

class Delegate : Print {
    override fun print() = println("被委派者");
}

class Delegator(delegate: Delegate) : Print by delegate

val delegate = Delegate()  
Delegator(delegate).print() // 被委派者

想看更多範例嗎?

可以看看

或加入 kotlin.tips 的 Kotlin 讀書會