代理模式主要是将管理与计算分开进行,避免在直接访问对象时,遇到的一些问题,从而对一个对象执行一些控制或处理。
//创建一个接口负责数据计算,算的上一个协议
interface ICalc{
calc(num1,num2):number;
}
//代理人A实现接口,承接接口的协议
class personA implement ICalc{
clac(num1,num2){
return num1 + num2;
}
}
//代理人B实现接口,承接接口的协议
class personA implement ICalc{
clac(num1,num2){
return num1 * num2;
}
}
//负责控制代理和管理数据
class person{
//代理,遵循接口协议
delegate:ICalc;
//获取num1和num2的计算结果
GetNum(num1:number,num2:number){
let num = this.delegate.calc(num1,num2);
document.write(num);
}
}
//实例一个对象
let person = new Person();
//设定一个代理
person.delegate = new personA();
//输入参数
person.GetNum(5,3);