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 相关文章推荐
javascript setTimeout和setInterval计时的区别详解
Jun 21 Javascript
jQuery检测鼠标左键和右键点击的方法
Mar 17 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
Form表单按回车自动提交表单的实现方法
Nov 18 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
May 07 Javascript
纯js封装的ajax功能函数与用法示例
May 14 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
Vue.js中的组件系统
May 30 Javascript
如何基于filter实现网站整体变灰功能
Apr 17 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
简单采集了yahoo的一些数据
2007/02/14 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
python求列表交集的方法汇总
2014/11/10 Python
pyenv命令管理多个Python版本
2017/03/26 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
python开发入门——set的使用
2020/09/03 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
通信工程专业女生个人求职信
2013/09/21 职场文书
工作睡觉检讨书
2014/02/25 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
信访工作个人总结
2015/03/03 职场文书
美丽人生观后感
2015/06/03 职场文书
SQL基础的查询语句
2021/11/11 MySQL