为一组复杂子系统接口提供一个更高级的统一接口,通过这个接口使得对子系统访问更加的容易。
// 使用外观模式注册事件监听
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;
};
通过对接口的二次封装,使其简单易用,隐藏起内部的复杂度,外观模式就是对接口的外层包装,以供上层代码调用。因此外观模式封装的接口方法不需要接口的具体实现,只需要按照接口的使用规则使用即可。