一、什么是代理模式?
代理模式,通俗来讲就是事情自己不想做,找别人来做。
二、代理模式的应用场景
在游戏当中,一般用于远程代理,缓存代理。
三、代码实现(简单举例)
//代理模式,自己不做事情,找代理人去做
interface Ical {//统一接口,所有代理人都遵循的"规则"
CalNum(num1: number, num2: number): number;
}
class Npc1 implements Ical {//代理人1做的是两个数相加
CalNum(num1: number, num2: number) {
return num1 + num2
}
}
class Npc2 implements Ical {//代理人2做的是两个数相减
CalNum(num1: number, num2: number) {
return num1 - num2
}
}
class Person {
delegate: Ical;//代理人
public getNum(num1: number, num2: number) {//获得一个数字
let num = this.delegate.CalNum(num1, num2);//通过代理人实现
return num;
}
}
let person = new Person();
person.delegate = new Npc1();
// person.delegate = new Npc2();
console.log(person.getNum(100, 20) + "");
//如果是npc1,那么输出的是120
//如果是npc2,那么输出的是80