在 Kotlin 中,組合模式(Composite Pattern)是一種結構型設計模式,它允許你將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得客戶端對單個對象和復合對象的使用具有一致性。
要實現統一接口,首先需要定義一個公共接口,然后讓所有組件(包括單個對象和復合對象)實現這個接口。這樣,客戶端就可以以相同的方式處理這些對象。
下面是一個簡單的 Kotlin 示例,展示了如何使用組合模式實現統一接口:
Component
:interface Component {
fun operation()
}
Component
接口的葉子節點類 Leaf
:class Leaf : Component {
override fun operation() {
println("Leaf operation")
}
}
Component
接口的復合節點類 Composite
:class Composite : Component {
private val children = mutableListOf<Component>()
fun add(child: Component) {
children.add(child)
}
fun remove(child: Component) {
children.remove(child)
}
override fun operation() {
println("Composite operation")
children.forEach { it.operation() }
}
}
fun main() {
val leaf1 = Leaf()
val leaf2 = Leaf()
val composite = Composite()
composite.add(leaf1)
composite.add(leaf2)
composite.operation() // 輸出 "Composite operation" 和 "Leaf operation"
}
在這個示例中,我們定義了一個名為 Component
的公共接口,它包含一個名為 operation
的方法。然后,我們創建了一個實現 Component
接口的葉子節點類 Leaf
和一個實現 Component
接口的復合節點類 Composite
。最后,在客戶端代碼中,我們使用統一接口 operation()
處理單個對象和復合對象。