JavaScript设计模式之外观模式实例
作者:bea
外观模式(门面模式),是一种相对简单而又无处不在的模式。外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用。 用一段再简单不过的代码来表示: 代码如下: var getName = function(){ return ”svenzeng” } var getSex = function(){ return ‘man' } 如果你需要分别调用getName和getSex函数. 那可以用一个更高层的接口getUserInfo来调用. 代码如下:
外观模式(门面模式),是一种相对简单而又无处不在的模式。外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用。
用一段再简单不过的代码来表示:
代码如下:
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();
}
有用 | 无用
用一段再简单不过的代码来表示:
代码如下:
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();
}
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JS 获取鼠标左右键的键值方法
- jquery动态加载js/css文件方法(自写小函数)
- 打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
- JavaScript中实现最高效的数组乱序方法
- JavaScript中实现PHP的打乱数组函数shuffle实例
- JavaScript定义变量和变量优先级问题探讨
- JavaScript中获取鼠标位置相关属性总结
- JavaScript中最简洁的编码html字符串的方法
- 原生Javascript封装的一个AJAX函数分享
- 探讨js字符串数组拼接的性能问题
- 分享20款美化网站的 jQuery Lightbox 灯箱插件
- Jquery $.getJSON 在IE下的缓存问题解决方法
- js点击button按钮跳转到另一个新页面
- jQuery获取iframe的document对象的方法
- jquery实现多行文字图片滚动效果示例代码
- 一个js过滤空格的小函数
- JS 新增Cookie 取cookie值 删除cookie 举例详解
- window.location 对象所包含的属性
- JavaScript参数个数可变的函数举例说明