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 相关文章推荐
图像替换新技术 状态域方法
Jan 28 Javascript
Js组件的一些写法
Sep 10 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
Jul 22 Javascript
使用apply方法实现javascript中的对象继承
Dec 16 Javascript
JavaScript中Math对象方法使用概述
Jan 02 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
Jun 13 Javascript
JavaScript中的对象继承关系
Aug 01 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
详解vuejs之v-for列表渲染
Jun 22 Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
Sep 21 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
PHP中strtotime函数使用方法分享
2012/01/10 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
完美的php分页类
2017/10/24 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
JS 遮照层实现代码
2010/03/31 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
Python将图片转换为字符画的方法
2020/06/16 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
python3下载抖音视频的完整代码
2019/06/05 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
c语言常见笔试题总结
2016/09/05 面试题
银行职员思想汇报
2013/12/31 职场文书
美发活动策划书
2014/01/14 职场文书
关于青春的演讲稿
2014/05/05 职场文书
市场开发计划书
2014/05/07 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
秋收起义观后感
2015/06/11 职场文书
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL