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 相关文章推荐
IE6下JS动态设置图片src地址问题
Jan 08 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
Oct 17 Javascript
Window.Open如何在同一个标签页打开
Jun 20 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
jquery操作复选框checkbox的方法汇总
Feb 05 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
Jul 27 Javascript
jQuery实现分隔条左右拖动功能
Nov 21 Javascript
js选项卡的制作方法
Jan 23 Javascript
Node.js与Sails redis组件的使用教程
Feb 14 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
详解Vue中的scoped及穿透方法
Apr 18 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 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
实现获取http内容的php函数分享
2014/02/16 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
浅谈Python中数据解析
2015/05/05 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
Python实现合并字典的方法
2015/07/07 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
英国女装网上商店:I Saw It First
2018/10/18 全球购物
市优秀教师事迹材料
2014/02/05 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
卫生巾广告词
2014/03/18 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL