外观模式(门面模式),是一种相对简单而又无处不在的模式。外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用。
用一段再简单不过的代码来表示

var getName = function(){
return ''svenzeng"
}
var getSex = function(){
return 'man'
}

如果你需要分别调用getName和getSex函数. 那可以用一个更高层的接口getUserInfo来调用.

var getUserInfo = function(){
var info = a() + b();
return info;
}

也许你会问为什么一开始不把getName和getSex的代码写到一起, 比如这样

var getNameAndSex = function(){
return 'svenzeng" + "man";
}

答案是显而易见的,饭堂的炒菜师傅不会因为你预定了一份烧鸭和一份白菜就把这两样菜炒在一个锅里。他更愿意给你提供一个烧鸭饭套餐。同样在程序设计中,我们需要保证函数或者对象尽可能的处在一个合理粒度,毕竟不是每个人喜欢吃烧鸭的同时又刚好喜欢吃白菜。

外观模式还有一个好处是可以对用户隐藏真正的实现细节,用户只关心最高层的接口。比如在烧鸭饭套餐的故事中,你并不关心师傅是先做烧鸭还是先炒白菜,你也不关心那只鸭子是在哪里成长的。

最后写个我们都用过的外观模式例子

var stopEvent = function( e ){   //同时阻止事件默认行为和冒泡
e.stopPropagation();
e.preventDefault();
}

最新文章

  1. (转载)ORA-14452:试图创建,更改或删除正在使用的临时表中的索引
  2. JAVA 往jar包添加class文件
  3. lintcode-【简单题】快乐数
  4. JS调试加断点
  5. 用JAVA代码实现验证邮箱地址是否符合
  6. Linux链接库四(多个库文件链接顺序问题)
  7. 父页面 调用iframe方法
  8. Eclipse 安装对 Java 8 的支持
  9. Swift compile slow 编译慢问题
  10. bin(x) 将整数x转换为二进制字符串
  11. wechat-php-sdk
  12. kaggle之旧金山犯罪
  13. Mac OS X将CSV格式转换为Excel文档格式,Excel转CSV中文乱码问题
  14. Springboot@Configuration和@Bean详解
  15. springmvc+hibernate在实体类中设置外键
  16. [转]使用STM32CubeMX:USB大容量存储设备
  17. leetcode输入输出加速
  18. Python实现二叉树的左中右序遍历
  19. gnome桌面无法使用笔记本的触摸板
  20. nodejs + redis/mysql 连接池问题

热门文章

  1. 第一个Flask Web
  2. mongodb,redis,mysql 简要对比
  3. 前端实现 SVG 转 PNG
  4. 获取mysql数据表中的列名
  5. CentOS yum安装和配置MySQL(转载)
  6. linux下修改path变量(转载)
  7. 第十章 Vim程序编辑器学习
  8. Fedora 14配置vsftp服务步骤
  9. java模拟用户登录(排除没有验证码情况下,抓取网页信息)
  10. JQuery上传插件uploadify整理(Events)