位置: 编程技术 - 正文

深入理解JavaScript系列(30):设计模式之外观模式详解(深入理解javascript特性)

编辑:rootadmin

推荐整理分享深入理解JavaScript系列(30):设计模式之外观模式详解(深入理解javascript特性),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:深入理解新发展理念,深入理解linux内核第三版,深入理解javascript,深入理解计算机系统,深入理解新发展理念,推进供给侧结构性改革,深入理解javascript特性,深入理解javascript,深入理解javascript特性.pdf,内容如对您有帮助,希望把文章链接给更多的朋友!

介绍

外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口值得这一子系统更加容易使用。

正文

外观模式不仅简化类中的接口,而且对接口与调用者也进行了解耦。外观模式经常被认为开发者必备,它可以将一些复杂操作封装起来,并创建一个简单的接口用于调用。

外观模式经常被用于JavaScript类库里,通过它封装一些接口用于兼容多浏览器,外观模式可以让我们间接调用子系统,从而避免因直接访问子系统而产生不必要的错误。

外观模式的优势是易于使用,而且本身也比较轻量级。但也有缺点 外观模式被开发者连续使用时会产生一定的性能问题,因为在每次调用时都要检测功能的可用性。

深入理解JavaScript系列(30):设计模式之外观模式详解(深入理解javascript特性)

下面是一段未优化过的代码,我们使用了外观模式通过检测浏览器特性的方式来创建一个跨浏览器的使用方法。再来一个简单的例子,说白了就是用一个接口封装其它的接口:

总结

那么何时使用外观模式呢?一般来说分三个阶段:

首先,在设计初期,应该要有意识地将不同的两个层分离,比如经典的三层结构,在数据访问层和业务逻辑层、业务逻辑层和表示层之间建立外观Facade。

其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少他们之间的依赖。

第三,在维护一个遗留的大型系统时,可能这个系统已经很难维护了,这时候使用外观Facade也是非常合适的,为系系统开发一个外观Facade类,为设计粗糙和高度复杂的遗留代码提供比较清晰的接口,让新系统和Facade对象交互,Facade与遗留代码交互所有的复杂工作。

参考:大话设计模式

深入理解JavaScript系列():设计模式之策略模式详解 介绍策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。正文在理解策略模式之前

深入理解JavaScript系列():设计模式之组合模式详解 介绍组合模式(Composite)将对象组合成树形结构以表示部分-整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。常见的场景

深入理解JavaScript系列():设计模式之模板方法详解 介绍模板方法(TemplateMethod)定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该

标签: 深入理解javascript特性

本文链接地址:https://www.jiuchutong.com/biancheng/382861.html 转载请保留说明!

上一篇:深入理解JavaScript系列(25):设计模式之单例模式详解(深入理解中国式现代化)

下一篇:深入理解JavaScript系列(33):设计模式之策略模式详解(深入理解新发展理念)

  • 货物已到发票未开具
  • 企业运输没有发票
  • 办税员如何绑定企业
  • 年报财务报表在哪里申报
  • 企业所得税清算报备表清算结束日
  • 购房契税应该交给谁
  • 物业公司管理费用
  • 期初建账以前年度损益调整怎么转?
  • 一次性离职补偿金如何避税
  • 政府补助计入资本公积是老准则吗
  • 进口的原材料没有发票
  • 广告位租赁交印花税吗
  • 小规模纳税人要做账吗
  • 过路费抵扣税率是多少
  • 增值税普通发票需要交税吗
  • 工业企业税负率一般控制在多少?
  • 营改增金融业税收政策
  • etc发票犯法吗
  • 银行摘要冲账是什么意思
  • 今年调整上年收入的政策
  • 我的初级备考经验--付出才有回报
  • 企业购买原材料生产时企业还没有赚到钱
  • 银行贷款受托支付受托人有风险吗
  • 土地城镇化怎么计算
  • 个体户开劳务费税率
  • 工伤保险的作用有
  • 民间借贷以工资抵押的案例
  • cpuz.exe
  • win7系统管理员密码忘了怎么办
  • php小程序开发完整教程
  • 私企固定资产管理办法
  • 凭证包括几个部分
  • 百度飞桨paddle
  • web前端入门教程
  • jquery 元素
  • 支付中介费和物业费比例
  • 小规模发票跨月冲红怎么做账
  • 实收资本退回给股东需要交印花税吗
  • 上传附件不成功怎么回事
  • mysql的索引是什么
  • 出口退税未按期申报怎么办
  • 基于vue的开源甘特图控件
  • discuz管理中心进不去
  • 企业收到财政拨付的专项资金账务处理
  • 购买税盘怎么减免申报
  • 实收资本不能动吗
  • 个人所得税汇算清缴
  • 建筑业跨区域预缴税款的计算
  • 企业如何进行促销
  • 增值税专用发票的税率是多少啊
  • 没有发票会怎样
  • 有借必有贷借贷必相等的记账规则适用于
  • 电子支付支付是什么意思
  • 项目资本金如何确定
  • 多张不同固定资产卡片可汇总生成一张固定资产凭证
  • 房产开发企业以什么为主
  • sql server常规错误
  • mysql高级功能
  • sql server存储过程教程
  • mysql 元组
  • win7传真和扫描
  • svcinit.exe - svcinit是什么进程
  • 苹果手机
  • linux时区问题
  • 事件处理的三个要素
  • cocos2d游戏源码
  • 基于重大误解实施的民事法律行为
  • JavaScript中的数据类型分哪为两大类?
  • jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
  • python微信公众号开发教程
  • cocos2d怎么用
  • unity3d做游戏
  • js中的substring
  • javascript面向对象精要
  • 常用的javascript对象
  • javascript模块化
  • 对超市的建议和意见怎么写简短
  • 智利有什么自然景观
  • 伊川娘娘山传说
  • 局党组中心组成员
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设