前言

所谓外观模式在我们实际运用中被大量运用到了,比如著名的jquery,它就是一个前端库,里面封装了各种各样的方法,我们使用这个库可以不用去考虑浏览器兼容情况,我们要知道,浏览器兼容一直是一个很让人头疼的事情。而Jquery库为我们解决了这些困扰。

什么是外观模式?

外观模式为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口值得这一子系统更加容易使用。
外观模式在JS中常常用于解决浏览器兼容性问题。

源码实现

  1. //外观模式实现浏览器不同情况下监听事件
  2. function addEvent(dom,type,fn){
  3. if(dom.addEventListener){
  4. dom.addEventListener(type,fn,false);
  5. }else if(dom.attachEvent){
  6. dom.attachEvent('on'+type,fn);
  7. }else{
  8. dom['on'+type] = fn;
  9. }
  10. }

很简单对吧,其实就是这么简单,它只不过对外提供了一个统一的接口,里面的逻辑不会暴露出去,我们也不会去关心里面到底是怎么实现的,我们只需要保证调用该接口能够在不同浏览器下达到同意的效果,所以大多来处理浏览器兼容性问题。