位置: 编程技术 - 正文

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

  • 什么是关税自主权
  • 可供出售金融资产和交易性金融资产
  • 差额征税专用发票如何开
  • 免税农产品发票开具时税率怎么选
  • 工程服务增值税税率1%
  • 怎么调开票金额
  • 职工薪酬会计准则
  • 出纳备用金管理制度
  • 红字发票的蓝字发票要退回吗
  • 外经证预缴附加税
  • 计提残疾人保障金的基数是什么
  • 投标人认证证书
  • 进项税已认证未入账如何处理
  • 会计代理服务是什么行业
  • 销售固定资产可以开专票吗
  • 汇算清缴后如何进行调帐处理
  • 企业收到退款应该如何做会计处理?
  • 不得免征和抵扣的税额
  • 工程施工属于什么会计科目
  • 总额法和净额法哪个合理
  • 企业公益捐赠的意义
  • 销售费用占收入比例叫什么
  • 增值税年末结转是结转全年吗
  • 小公司做帐
  • acs_log是什么文件
  • 右击任务栏启动怎么关闭
  • pps影音怎么看电视直播
  • 不征税收入如何记账
  • html页面中利用______标签可引入jquery库
  • PHP:pcntl_signal()的用法_PCNTL函数
  • 增值税专用发票上注明的价款含税吗
  • codelite怎么进行编译
  • 当月计算的增值税怎么算
  • 进销存如何结转成本
  • php反转字符串方法
  • javaweb会话跟踪技术有哪些
  • 前端实战开发
  • 委托加工物资如何做账
  • 通用机打发票还能用吗
  • 下乡扶贫有补助吗
  • 小微企业应纳税所得额100万到300万怎么计算
  • 事业单位收到发票怎么处理
  • 暂估入库结转成本后如何冲红
  • 企业从银行取得短期贷款存入银行,属于( )类型变化业务
  • 收到的承兑怎么转给别人
  • 物流费属于什么会计科目
  • 员工欠薪怎么办
  • 诉讼费可以退回私账嘛
  • 没有收到款项签认债有用吗
  • 一次性支付意思
  • 广告发布费属于什么费用
  • 账簿设制的一般程序
  • mysql order by 性能
  • mysql2003错误如何解决10061
  • sql游标实例
  • centos访问网页命令
  • windows自动执行
  • win8系统没有声音
  • fedora打不开
  • windows xp怎么清理c盘
  • win7无法正常关机
  • win102h20
  • linux设置权限755
  • windows7触摸
  • 正则表达\d
  • android开发项目实战+源码教程
  • css@import
  • python递归函数详解
  • node.js中的http.request.end方法使用说明
  • js弹出小窗口
  • 手游 unity
  • 【Android】利用Notification操作设备的通知栏
  • Android 5.1 API 22 所有sdk文件下载地址
  • 简约时尚搭配
  • Python第三方库的常见安装方法有
  • 国家河北税务局官网
  • 济宁税务大厅上班时间
  • 北京西城税务局
  • 天津普通发票查询平台
  • 车辆大本怎么办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设