热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

代理模式在TypeScript中的应用

1.代理模式:在原有方法前后插入其他代码:1.定义接口:抽象出被代理的方法2.被代理的对象实现接口3.代理对象实现接口,

1.代理模式:

在原有方法前后插入其他代码: 

1.定义接口:抽象出被代理的方法2.被代理的对象实现接口3.代理对象实现接口,代理方法的实现委托给被代理对象proxy 代理商



2. 静态代理模式


 

// 定义接口(要代理的方法)interface Service {sale(n: number): void;fix(): void;}class Real implements Service {sale(n: number) {console.log("厂家销售" + n);}fix() {console.log("厂家维修");}other() {console.log("厂家其他方法");}}class MyProxy implements Service {// 委托(依赖)关系real: Real;constructor(real: Real) {this.real = real;}sale(n: number): void {console.log("代理开始销售" + n);this.real.sale(n);n += 10;console.log("代理捆绑一个超值大礼包!!!");console.log("代理完成销售" + n);}/*** 调用实际对象的方法*/fix(): void {console.log("代理开始修理");this.real.fix();console.log("代理完成修理");}}

测试代码部分:

// let r = new Real();// r.sale();// r.fix();// r.other();let a: Service;a = new Real();a.sale(100);//多态console.log("--------------------");a = new MyProxy(new Real());a.sale(100);//多态


控制台结果为:

装饰器模式 java IO中与它相似


推荐阅读
author-avatar
关注前世男友
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有