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 相关文章推荐
JavaScript 和 Java 的区别浅析
Jul 31 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
jQuery构造函数init参数分析
May 13 Javascript
C++中的string类的用法小结
Aug 07 Javascript
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
knockoutjs模板实现树形结构列表
Jul 31 Javascript
label+input实现按钮开关切换效果的实例
Aug 16 Javascript
JS实现点击按钮可实现编辑功能
Jul 03 Javascript
微信小程序开发之转发分享功能
Oct 22 Javascript
JS控制GIF图片的停止与显示
Oct 24 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
星际中的相关伤害
2020/03/04 星际争霸
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
PHPMailer发送邮件
2016/12/28 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
提升Python程序运行效率的6个方法
2015/03/31 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
python redis 删除key脚本的实例
2019/02/19 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
道路建设实施方案
2014/03/18 职场文书
健康教育评估方案
2014/05/25 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
手机销售员岗位职责
2015/04/11 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers