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 相关文章推荐
基于jQuery架构javascript基础体系
Jan 01 Javascript
JS 日期比较大小的简单实例
Jan 13 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
May 03 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
May 28 Javascript
vue基本使用--refs获取组件或元素的实例
Nov 07 Javascript
Element Dropdown下拉菜单的使用方法
Jul 26 Javascript
JavaScript ES6的函数拓展
Jan 18 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
DC动漫人物排行
2020/03/03 欧美动漫
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
动态加载iframe
2006/06/16 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
深入分析JavaScript 事件循环(Event Loop)
2020/06/19 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
基于Python的关键字监控及告警
2017/07/06 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
利用python循环创建多个文件的方法
2018/10/25 Python
python实现名片管理系统
2018/11/29 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
pip install命令安装扩展库整理
2021/03/02 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
自荐信的基本格式
2014/02/22 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
飞越疯人院观后感
2015/06/09 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js