JavaScript设计模式之外观模式实例


Posted in Javascript onOctober 10, 2014

外观模式(门面模式),是一种相对简单而又无处不在的模式。外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用。

用一段再简单不过的代码来表示:

var getName = function(){

return ”svenzeng”

}

var getSex = function(){

return ‘man'

}

如果你需要分别调用getName和getSex函数. 那可以用一个更高层的接口getUserInfo来调用.

var getUserInfo = function(){

var info = a() + b();

return info;

}

答案是显而易见的,饭堂的炒菜师傅不会因为你预定了一份烧鸭和一份白菜就把这两样菜炒在一个锅里。他更愿意给你提供一个烧鸭饭套餐。同样在程序设计中,我们需要保证函数或者对象尽可能的处在一个合理粒度,毕竟不是每个人喜欢吃烧鸭的同时又刚好喜欢吃白菜。

外观模式还有一个好处是可以对用户隐藏真正的实现细节,用户只关心最高层的接口。比如在烧鸭饭套餐的故事中,你并不关心师傅是先做烧鸭还是先炒白菜,你也不关心那只鸭子是在哪里成长的。

最后写个我们都用过的外观模式例子:

var stopEvent = function( e ){   //同时阻止事件默认行为和冒泡

e.stopPropagation();

e.preventDefault();

}
Javascript 相关文章推荐
js 颜色选择器(兼容firefox)
Mar 05 Javascript
Jquery 高亮显示文本中重要的关键字
Dec 24 Javascript
JS的document.all函数使用示例
Dec 30 Javascript
一个仿糯米弹框效果demo
Jul 22 Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 Javascript
javascript 玩转Date对象(实例讲解)
Jul 11 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
Mar 09 Javascript
《javascript少儿编程》location术语总结
May 27 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
Jun 04 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
原生js实现抽奖小游戏
Jun 27 Javascript
javascript实现点击小图显示大图
Nov 29 Javascript
JavaScript中的无阻塞加载性能优化方案
Oct 10 #Javascript
JavaScript设计模式之策略模式实例
Oct 10 #Javascript
JavaScript运行机制之事件循环(Event Loop)详解
Oct 10 #Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 #Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
Oct 09 #Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 #Javascript
分享一款基于jQuery的视频播放插件
Oct 09 #Javascript
You might like
php递归方法实现无限分类实例代码
2014/02/28 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
JS分页效果示例
2013/10/11 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
2017/07/06 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
学前教育教师求职自荐信
2013/09/22 职场文书
主管职责范文
2013/11/09 职场文书
岗位职责的定义
2013/11/10 职场文书
宝宝周岁宴答谢词
2014/01/26 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
毕业设计致谢语
2015/05/14 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
linux下安装redis图文详细步骤
2021/12/04 Redis
代码复现python目标检测yolo3详解预测
2022/05/06 Python