外观模式:为一组复杂子系统接口提供一个更高级的统一接口,通过这个接口使得对子系统访问更加的容易。
// 使用外观模式注册事件监听
function addEvent(dom,type,fn) {
if(dom.addEventListener){
dom.addEventListener(type,fn,false);
}else if(dom.attachEvent){
dom.attachEvent('on'+type,fn);
}else{
dom['on'+type] = fn;
}
}
// 使用外观模式获取事件对象
var getEvent = function(event) {
return event || window.event;
}
通过对接口的二次封装,使其简单易用,隐藏起内部的复杂度,外观模式就是对接口的外层包装,以供上层代码调用。因此外观模式封装的接口方法不需要接口的具体实现,只需要按照接口的使用规则使用即可。