位置: 编程技术 - 正文

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

  • 税盘服务费抵扣增值税
  • 用于员工福利的进项税转出分录
  • 营业执照丢失公示几天才能注销
  • 上缴非税收入前是否要交税
  • 开票和预缴税款跨月
  • 企业社会保险登记表
  • 进项和销项必须在一个月吗
  • 工资算管理费用还是生产成本
  • 实际发生应收账款坏账时的会计处理
  • 暂估跨年取得发票怎么办
  • 购买自用应税车辆的应自购买之日起
  • 火车票补票报销流程
  • 小规模建筑公司预缴增值税
  • 高新企业职工教育经费扣除比例
  • 固定资产增值税可以一次性抵扣吗
  • 个人独资企业需要公司章程吗
  • 变更公司名称注册时间会变吗
  • 企业多扣个税怎么处理
  • 一般纳税人注销公司流程2023
  • 股息率超过10%的公司
  • 建筑公司开劳务票税点是多少
  • 印花税减免税额需要做账吗
  • linux系统安装浏览器
  • linux系统参数调优
  • 查补以前年度企业所得税的申报处理
  • 企业加计扣除活动
  • Linux系统中sort排序命令的使用教程
  • thinkphp 5.0.24 rce
  • php数据表
  • 货物运输业增值税专用发票
  • 奥尔梅克
  • 销售方运输发票怎么做账?
  • 社保比例调整后多久生效
  • PHP面向对象程序设计
  • download github
  • opencv官方教程
  • php image
  • 借入资金会计科目
  • 绿化公司属于哪个行业
  • 个人综合所得汇算申报流程
  • python中列表的作用
  • 关联方利息支出税前扣除规定
  • 计提坏账准备对企业的影响
  • 其他应收款科目代码
  • 出借和出租包装物会计分录是什么
  • 网上代增值税专用发票
  • 旅行社开具的发票抵扣
  • 水电费没有收到怎么处理
  • 合作社增值税免税项目
  • 退休人员返聘签订什么合同
  • 企业亏损为什么还继续
  • 员工代垫费用能用公户转吗
  • 关于新企业所得税法说法正确的是
  • 复利现值系数和复利终值系数
  • 农产品收购发票如何抵扣进项税
  • 土地租金怎么做账
  • 融资手续费计入长期待摊
  • 错账查找方法主要有
  • 房地产企业以土地入股如何交纳企业所得税
  • 群发网址
  • mysql 连接语句
  • win7系统安装软件闪退
  • 在windows xp中说法正确的是
  • 直通车和百度竞价的区别
  • linux删除大量文件方法
  • windows7开机
  • Mac应用程序的格式
  • js基于贪心算法实验报告
  • 安卓匿名电话软件
  • Unity3D值Input Manager
  • node的全局变量有哪些
  • 猫的合集
  • 使用jquery实现的项目
  • js获取鼠标坐标到浏览器底部
  • 简单Python代码
  • 用原生js实现过什么功能
  • 标箭头的手机软件
  • 广东地税服务电话
  • 最新印花税税目内容
  • 企业税务人员岗位竞聘报告怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设