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 replace正则表达式应用案例讲解
Jan 17 Javascript
jquery实现简单易懂的图片展示小例子
Nov 21 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
Nov 29 Javascript
window.onload追加函数使用示例
Mar 03 Javascript
iframe中使用jquery进行查找的方法【案例分析】
Jun 17 Javascript
vue.js学习笔记之绑定style样式和class列表
Oct 31 Javascript
探讨跨域请求资源的几种方式(总结)
Dec 02 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
Dec 14 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
Vue使用mixin分发组件的可复用功能
Sep 01 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 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
MySQL中create table语句的基本语法是
2007/01/15 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
详解Python中的日志模块logging
2015/06/19 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
python excel转换csv代码实例
2019/08/26 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
python exit出错原因整理
2020/08/31 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
建筑设计所实习生自我鉴定
2013/09/25 职场文书
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
招商业务员岗位职责
2013/12/16 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
简爱读书笔记
2015/06/26 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL