interface proxyInterface {
dofirst();
}
interface player {
dodoA(): void;
}
class beProxy implements player {
public constructor() {
YBLog.log("beProxy", " 我是被代理的那个人 ");
}
public dodoA(): void {
YBLog.log("beProxy", " 我是被代理的那个人 dodoA ");
}
}
//代理者
class proxy implements player,proxyInterface {
private beProxy:player = null ; //代理我的那个人
public constructor() {
YBLog.log("proxy", " 我是代理者 创建 一个 被代理人");
this.beProxy = new beProxy();
}
public dodoA(): void {
this.dofirst();
YBLog.log("proxy", " 我是代理者 dodoA 使用个性的方法 同时调用了被代理者的方法 ");
this.beProxy.dodoA()
}
public dofirst(): void {
YBLog.log("proxy", " 我是代理者 可以先做我一下自己的事情");
}
}
new proxy().dodoA();
一.优点:高扩展,可以保留beProxy 的东西不变,直接扩展proxy的 完成一些额外的工作。
二缺点:内存大了。