一句话总结
为其他对象提供一种代理,以控制对这个对象的访问。
背景
小明喜欢小红,想送她礼物。但自己不好意思直接送,就拜托自己的好朋友小强代送。
Code
protocol GiveGift {
func giveDolls()
func giveFlowers()
func giveChocolate()
}
class Pursuit: GiveGift {
func giveDolls() {
print("给小红送洋娃娃")
}
func giveFlowers() {
print("给小红送花")
}
func giveChocolate() {
print("给小红送巧克力")
}
}
class Proxy: GiveGift {
weak var pursuit: Pursuit?
init(pursuit: Pursuit) {
self.pursuit = pursuit
}
func giveDolls() {
pursuit?.giveDolls()
}
func giveFlowers() {
pursuit?.giveFlowers()
}
func giveChocolate() {
pursuit?.giveChocolate()
}
}
func main() {
let ming = Pursuit()
let qiang = Proxy(pursuit: ming)
qiang.giveDolls()
qiang.giveFlowers()
qiang.giveChocolate()
}