目录

结构型:代理模式

释义

代理模式,自己完不成的事交由另一位能完成的代理人去完成。

/%E7%BB%93%E6%9E%84%E5%9E%8B%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/%E7%BB%93%E6%9E%84%E5%9E%8B%EF%BC%9A%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F.resources/FCF5298B-6F9D-4544-BE60-452E6A27408A.png
代理模式
作家Write会写作write()。原作家RealWriter有一天需要请加,就请了一位代理作家ProxyWriter来完成自己当天的工作。

父类

1
interface Person {}

原作家

1
2
3
class RealWriter : Person {
    fun write() { ... }
}

代理作家

1
2
3
4
5
6
7
8
9
class ProxyWriter : Person(
    // 注意引入作家
    var writer: Writer
){
    // 调用原作家的方法
    fun write() { 
        writer.write() 
    }
}

使用

1
2
3
4
fun main() {
    val proxyWriter: ProxyWriter = ProxyWriter()
    proxyWriter.writer() // 由proxyWriter代为执行,实际上执行的是RealWriter的方法
}