释义
桥接模式,在类的基础上,增加一个接口作为“桥”。接口的实现类和该类都可以独立变换而互不影响。
对于抽象类Shape
,为他接入接口Drawable
。Circle
是抽象类Shape
的实现类,Rabbit
是接口Drawable
的实现类。Circle
和Rabbit
可以互不干扰、独立实现。
桥
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()
}
|