目录

结构型:桥接模式

释义

桥接模式,在类的基础上,增加一个接口作为“桥”。接口的实现类和该类都可以独立变换而互不影响。

/%E7%BB%93%E6%9E%84%E5%9E%8B%E6%A1%A5%E6%8E%A5%E6%A8%A1%E5%BC%8F/%E7%BB%93%E6%9E%84%E5%9E%8B%EF%BC%9A%E6%A1%A5%E6%8E%A5%E6%A8%A1%E5%BC%8F.resources/49F9BE77-67C1-414D-9D29-8B980E204A26.png
桥接模式
对于抽象类Shape,为他接入接口DrawableCircle是抽象类Shape的实现类,Rabbit是接口Drawable的实现类。CircleRabbit可以互不干扰、独立实现。

1
2
3
interface Drawable {
    fun draw()
}

基础类

1
2
3
4
5
abstract class Shape : Drawable{
    override fun draw()
    
    fun show()
}

桥的实现类

1
2
3
4
5
class Rabbit : Drawable{
    override fun draw() {
        drawRabbit()
    }
}

基础类的实现类

1
2
3
4
5
6
7
8
9
class Circle : Shape {
    override fun draw() {
        drawCircle()
    }
    
    override fun show() {
        showCircle()
    }
}

使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
fun main() {
    val rabbit: Rabbit = Rabbit()
    val circle: Circle = Circle()
    
    // rabbit实现Drawable,可以draw()
    rabbit.draw()
    
    // circle实现Shape,可以draw()和show()
    rabbit.draw()
    rabbit.show()
}