位置: 编程技术 - 正文

深入理解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):设计模式之策略模式详解(深入理解新发展理念)

  • 结转结余属于什么科目
  • 个体工商户收入怎么核定
  • 去税务局申报需要带营业执照吗
  • 增值税留抵税额计入什么科目
  • 劳务派遣代发工资开票
  • 私企捐助民办学校怎么办
  • 外经证预交几个点
  • 转让股权收入需要缴纳企业所得税吗
  • 还有预算外资金的说法吗
  • 非货币性资产交换固定资产清理
  • 用现金购买办公设备会计分录
  • 物流企业会计核算的主要内容
  • 工会的会费收入如何记账
  • 应付账款坏账准备的会计分录
  • 物业企业门禁卡如何记账?
  • 充值卡充值发票可以报销吗
  • 公司和个人大额往来怎么办
  • 拆迁安置房建设流程
  • 利税总额含企业所得税吗
  • 非公司私营企业属于什么类型
  • 个人取得下列各项所得须自行申报纳税的有
  • 500万以下固定资产最新政策
  • 在建工程转固定资产后如何计提折旧
  • 小型微利企业能开多少发票
  • 土地在会计中怎么处理
  • 客户付货款给我们公司备注往来结算款
  • 小规模纳税人发票增额需要什么手续
  • 办税员不能领用发票是怎么回事
  • 征信证明怎么开啊
  • 收到质量索赔款怎么入账
  • 一次发放数月的高温津贴如何计算个税?
  • 抽奖得奖
  • win7电脑怎么开
  • 长期股权投资增加的原因
  • 销售折扣收货方法有哪些
  • php数组函数实现机选双色球
  • php验证码代码怎么写
  • 如何弥补以前年假的问题
  • 在php中,字符串有哪些表示形式
  • 公司报销医疗费的范围
  • 笔记本显示器分辨率无法调整怎么办
  • 企业事业单位应当采取有效措施
  • mac应用程序图标
  • php image
  • php中imagecreatefromjpeg
  • phpajax技术
  • centos从命令行进入图形
  • php十进制转二进制算法
  • 职工教育经费能结转几年
  • java 日志系统
  • python3 静态方法
  • 个体工商户如何注销网上
  • 接待客人的本地人叫什么
  • sql server数据库正在恢复
  • php 上传
  • 固定资产属于有形还是无形资产
  • 固定收益票据
  • 工地扬尘检测仪图片
  • 苗圃的账务处理
  • 年底进项比销项大要做账么
  • 在建工程待摊支出结转
  • 劳务支出如何做账
  • 平台使用费属于什么服务
  • 一个真正的企业应该具备哪些特征
  • win7盘符不见了
  • tcp window 0
  • Mac如何使用clash上外网
  • winxp怎么设置启动项
  • mac打印预览快捷键是什么
  • xcode 导入sdk
  • js 仿真
  • javascript入门教程
  • 详解linux设备
  • RadioGroup+Fragment实现底部菜单栏
  • jquery propertychange
  • android 自定义actionbar
  • 新能源免税申报,车辆类型怎么填
  • 深圳地方税务局电话
  • 江西省税务局发票查询平台官网
  • 增值税发票勾选操作流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设