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功能函数代码
Jun 23 Javascript
JS定时器实例详细分析
Oct 11 Javascript
JavaScript中Array的实用操作技巧分享
Sep 11 Javascript
ES6新数据结构Set与WeakSet用法分析
Mar 31 Javascript
Vue中引入样式文件的方法
Aug 18 Javascript
基于vue-upload-component封装一个图片上传组件的示例
Oct 16 Javascript
vue数据初始化initState的实例详解
Apr 11 Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 Javascript
layui框架与SSM前后台交互的方法
Sep 12 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
Mar 14 Javascript
微信小程序实现watch监听
Jun 04 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
php实现简易计算器
2020/08/28 PHP
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
Nest.js 授权验证的方法示例
2021/02/22 Javascript
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
django框架自定义用户表操作示例
2018/08/07 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
python3.5安装python3-tk详解
2019/04/26 Python
python 实现Harris角点检测算法
2020/12/11 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
小学家长评语大全
2014/04/16 职场文书
销售队伍口号
2014/06/11 职场文书
代领毕业证委托书
2014/08/02 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
pytorch中的 .view()函数的用法介绍
2022/03/17 Python