JavaScript设计模式之代理模式介绍


Posted in Javascript onDecember 28, 2014

代理模式说明

说明:顾名思义就是用一个类来代替另一个类来执行方法功能,这个模式跟装饰模式有点相似,不一样的是,代理模式是代替客户初始化被代理对象类,而装饰模式采用接口或初装饰者参数引用的方式来执行的。

在动态面向对象语言里,代理模式即起到控制修饰被代理类的作用,也对被代理类起到了充分的隐藏保护作用;被代理类只到我们需要时,才被间接初始化调用;

场景描述:

很常见到的就是租房子的例子,房客要租房子,房东要把房子租出去,但是房客跟房东都没怎么有空找房子或在家等着有人看房子,就一同去找房屋中介。房东把房间委托给中介代理租售,有合适的人需要时,中介带看房间,交钱租住,这样就帮房东把房间租出去了;房客委托房属中介帮招要求的房间位置条件,中介帮房客找到合房后,两者交钱租住,这样就替房客租到住的地方了;

实例源码

按上面的例子来实现;

1. 房东出租类;

function Fangdong() {

    this.room = '房间名';

}

Fangdong.prototype.chuzu = function() {

    console.log('房东出租房间: ' + this.room);

}

2. 中介代理类:

function Proxy() {

    this.fangdong = new Fangdong();

}
Proxy.prototype.chuzu = function() {

    this.fangdong.chuzu();

    console.log('出租后收中介费');

}

3. 使用方法:

//房客请中介帮找房子;

var proxy = new Proxy();

proxy.chuzu();

看看上面的使用,被代理类在客户端完全用不着,只要使用Proxy类即可,可以很好使用在那种需要保护某些业务逻辑过程的情景中;使用代理模式,可以很好的保护需要保护的被代理类;

其他说明

跟装饰者模式一样,代理模式也很好的体现了面向对象思想的对扩展开放,对修改关闭的原则;
代理模式,可以使用接口或抽象类来规范共同的接口:(以下提供JAVA方式代理模式)

1. 抽象类 abstract 方式;

public abstract class House {

    public void abstract chuzu();

}
public class Fangdong extends House {

    private String room = “房间名称”;

    @Override

    public void chuzu() {

        System.out.println(room);

    }

}
public class Proxy extends House {

    private Fangdong fangdong;

    public Proxy() {

        this.fangdong = new Hangdong();

    }

    @Override

    public void chuzu() {

        this.fandong.chuzu();

        System.out.println(“出租后交中介费”);

    }

}
//使用

House house = new Proxy();

house.chuzu();

2. 接口 Interface 方式:

interface House {

    public void chuzu();

}
public class Fangdong implements House {

    private String room = “房间名称”;

    @Override

    public void chuzu() {

        System.out.println(room);

    }

}
public class Proxy implements House {

    private Fangdong fangdong;

    public Proxy() {

        this.fangdong = new Hangdong();

    }

    @Override

    public void chuzu() {

        this.fandong.chuzu();

        System.out.println(“出租后交中介费”);

    }

}
//使用

House house = new Proxy();

house.chuzu();
Javascript 相关文章推荐
利用JS重写Cognos右键菜单的实现代码
Apr 11 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
May 23 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
Jul 20 Javascript
详解vue-cli构建项目反向代理配置
Sep 07 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
Oct 25 Javascript
layer弹出层父子页面事件相互调用方法
Aug 17 Javascript
element-ui中的select下拉列表设置默认值方法
Aug 24 Javascript
JS面试题大坑之隐式类型转换实例代码
Oct 14 Javascript
详解vue-cli@2.x项目迁移日志
Jun 06 Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 Javascript
JavaScript设计模式之外观模式介绍
Dec 28 #Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 #Javascript
jQuery中removeData()方法用法实例
Dec 27 #Javascript
jQuery中data()方法用法实例
Dec 27 #Javascript
jQuery中index()方法用法实例
Dec 27 #Javascript
jQuery中get()方法用法实例
Dec 27 #Javascript
jQuery的context属性用法实例
Dec 27 #Javascript
You might like
给多个地址发邮件的类
2006/10/09 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
jquery实现图片放大镜功能
2015/11/23 Javascript
Javascript基础_简单比较undefined和null 值
2016/06/14 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
基于js 本地存储(详解)
2017/08/16 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
JS中的事件委托实例浅析
2018/03/22 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
webstorm+vue初始化项目的方法
2018/10/18 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
Python可以实现栈的结构吗
2020/05/27 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
python自动从arxiv下载paper的示例代码
2020/12/05 Python
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
英国在线泳装店:Simply Swim
2019/05/05 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
物业电工岗位职责
2013/11/20 职场文书
面试自我评价范文
2014/09/17 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
小学生差生评语
2014/12/29 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
团日活动总结格式
2015/05/11 职场文书
国富论读书笔记
2015/06/26 职场文书