位置: 编程技术 - 正文

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

  • 个人股权转让如何纳税
  • 工资计提金额有误怎么调整
  • 企业接受捐赠固定资产计入什么科目
  • 差旅费跨年报销说明
  • 补偿金需要缴纳个税吗?
  • 财务报表中的存货怎么做掉
  • 项目固定资产投资强度
  • 跟个人租车可以到税务局开发票吗
  • 资产负债表其他应付款计算公式
  • 企业在什么情况下辞退员工不需要补偿
  • 电商刷单返现如何做账务处理合适?
  • 建筑业统一发票可以抵扣吗
  • 化妆品进口环节消费税
  • 跨地区经营怎么交税
  • 生产企业报关单金额大于发票金额
  • 过路费是地税还是国税
  • 经营性租入的设备是资产吗
  • 疏通下水道入什么经络
  • 可加计扣除的研发费用包括()
  • 电子发票如何作废冲红
  • 买一个金蝶软件年费多少
  • 对公收到别人的转账怎么记账
  • 职工教育经费培训费扣除比例
  • php正则表达式验证url
  • 资产减值准备怎么影响利润
  • php1 zybdjx
  • 年终双薪要做满一年嘛
  • LangChain Agent 执行过程解析 OpenAI
  • 个体工商户需要报哪些税
  • 企业税负率过高的坏处
  • php计算给定日期的时间
  • php查询mysql数据库
  • 海关进口增值税计入什么科目
  • 装修费还没摊销完就搬家了
  • 开源ei
  • 毕业论文笔记怎么写
  • php采集器
  • 帝国cms会侵权吗为什么
  • 收到抵扣发票怎么做分录
  • python中默认值参数
  • mongodb bi
  • 坏账准备计提额怎么计算
  • 企业所得税核定管理办法
  • 用负数表示的例子
  • 员工福利费属于什么会计科目
  • 什么是企业年金险
  • 保理公司的钱来自哪里
  • 合伙企业怎么注册公司持股人
  • 结构性存款现金流量表流入里放在哪里
  • 购买货物对方代垫的运输费分录
  • 资产减值损失的科目编码
  • 车票如何抵扣增值税
  • 利润总额毛利润怎么算
  • 香港公司账户收美元要交税吗
  • 重要空白凭证是什么科目
  • 开办费如何摊销成本
  • “制造费用”账户如何设置明细账?
  • sql解析框架
  • win10系统如何打开运行命令
  • wins资源管理器
  • macbook怎么开hdr
  • linux监视内存详细信息命令
  • 笔记本bios密码怎么强制清除
  • centos 6.6安装教程
  • 借助竹子赞美人物气节的诗句有哪些
  • Win10预览版拆弹
  • 系统更新win10
  • dos 批处理
  • jquery 设置css
  • android点击按钮弹出对话框
  • unity3d应用开发
  • nodejs查找文件
  • jquery.inarray
  • python多线程操作
  • python tcp编程
  • jquery跨域请求有哪些方式
  • js判断ua
  • 资源税是什么?
  • 现行会计法律法规汇编2022版
  • 市中区税务局办税大厅上班时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设