js设计模式(结构型设计模式)-外观模式

  外观模式:为一组复杂的子系统提供一个更高级的统一接口,通过这个接口可以对子系统访问很轻松。就像我们点的套餐一样,下面详细说明。

1.场景:添加点击事件

为页面document添加onclick事件,

重新添加了,会覆盖。而且存在阻止默认事件的兼容问题。

document.body.onclick=function(e){

e.preventDefault();

console.log(1)

}

2.外观模式来处理

每天中午,我们急冲冲得去餐厅吃饭,人很多,无论是商家还是我们都希望能快点填饱肚子。通常我们都是点套餐,而不点单品,一则省钱,二则省心。套餐简洁明了,他把主食、菜品、饮料都定制好了。外观模式就是如此,他提供一个统一对外接口,这样就能很简单的实现功能而不用管内部的复杂多样。代码如下

addEvent方法实现

var bc = {

        addHandler: function(oElement, sEvent, fnHandler) {

            oElement.addEventListener ?

                oElement.addEventListener(sEvent, fnHandler, false) :

                oElement.attachEvent("on" + sEvent, fnHandler)

        }

    }

原生js有很多兼容代码,我们可以利用外观模式封装一个小型的代码库。(可以用单例模式)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,808评论 2 17
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,526评论 1 11
  • 声明:本文来源于http://www.webzsky.com/?p=731我只是在这里作为自己的学习笔记整理一下(...
    angryyan阅读 7,080评论 1 6
  • 上了满月岛大概一个多星期,近一两日,我心里真的憋了一把熊熊燃烧的烈火。点燃火种不是别人,恰恰是逼着自己熬夜的上司。...
    修墨68阅读 429评论 0 1
  • “我刚刚开车,开着开着眼泪就滑出来了”。 “我们彻底结束了。这次是真的,彼此都没有挽留”。 “不用等三天,我已经清...
    夏奈l阅读 321评论 7 3