代理模式
举例:
使用真实服务器访问网络时,可以使用一个代理服务器进行联网之前的检查,再继续执行访问网络的操作。
代码示例:
//创建用于实现服务器类的通用接口
interface Network {
//浏览网页的方法
browse(): void;
}
//创建真实服务器类,实现Network接口
class Server implements Network {
//真实服务器浏览网页的方法
browse(): void {
console.log('真实服务器访问网络');
}
}
//创建代理服务器类,实现Network接口
class ProxyServer implements Network {
private netWork: Network;
//使用多态,传入Network类型的类
constructor(netWork: Network) {
this.netWork = netWork;
}
//联网之前的检查方法
check(): void {
console.log('联网之前的一些检查工作');
}
//代理服务器浏览网页的方法
//实则代理真实服务器的浏览网页方法
browse(): void {
this.check();
this.netWork.browse();
}
}
const trueServer = new Server();
const proxyServer: ProxyServer = new ProxyServer(trueServer);
proxyServer.browse();//联网之前的一些检查工作 真实服务器访问网络