位置: 编程技术 - 正文

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

  • 以房抵债的房子交房产税吗
  • 税后净营业利润和净利润的区别
  • 纳税义务发生时间记忆口诀
  • 比赛奖金要交税么
  • 出口商品认证
  • 视同销售收入是纳税调整项目吗
  • 其他应付款贷方负数怎么调整
  • 企业将要购买一套房产
  • 监理行业增值税税率多少
  • 无形资产研发费用加计扣除是晢时差异吗
  • 现金支票 差旅费
  • 少付了几毛钱会计分录
  • 定额备用金制度有哪些
  • 票面利率大于市场利率是溢价吗
  • 城市建设综合配套费征收管理办法
  • 税务局申请发票
  • 案例分析互联网巨头的战略计划
  • 糖类计算公式
  • 属于资金的筹资方式是
  • 汽车中介赚钱吗
  • 安装设备用的材料计入什么科目
  • 外地预缴工会其他经费计入什么科目?
  • 投资活动净现金流为负说明什么
  • 总公司和分公司的合作协议
  • 出口业务怎么做分录
  • 不能升级win11的二手电脑值得购买吗
  • 网络看不到局域网图标
  • 餐费如何入账
  • 房产营销策划经典案例
  • 附有销售退回条款的销售中,每一资产负债表日
  • 消防工程改造方案
  • 年中建账年初余额怎么录入
  • 银行存款账面余额与银行账户余额
  • vue.js.
  • yolov5 教程
  • 孪生神经网络 计算相似度
  • ngnix 命令
  • 短信php源码
  • 个税在工资里怎么计提
  • 营改增一般纳税人简易征收的范围
  • 税控机清单
  • pycharm折叠代码块快捷键
  • 报销货物运输费需要什么凭证
  • 汽车修理厂利润
  • 装修店面装修费的会计分录
  • 其他应付款贷方表示什么意思
  • 小规模纳税人现代服务税率
  • mysql获取字段值的长度
  • sql dbo
  • 公司自有房产出租给员工如何处理
  • 收到货款发货了没开发票怎么入账
  • 差额征收的会计分录
  • 视同销售包括哪些行为?
  • 车辆保险发票一般在哪开
  • 合同里包括产品和服务吗
  • 购买原材料保险费分录
  • 亏本处理产品怎么做账
  • 次年发上年年终奖
  • MySQL数据库索引设计
  • sql搜索字段名
  • 获取客户端所有cookie对象的方法
  • mysql 5.7.31安装
  • win8系统运行慢怎么办
  • linux 解析
  • u盘装系统系统资料会被泄露吗
  • 电脑右下角windows设置在哪
  • ubuntu启动vncserver
  • windows7磁盘清理命令
  • css使用教程
  • linux哪些方法可以查看命令的详细信息
  • Unity的Attribute(特性)还算多吧
  • JavaScript中的数据类型
  • javascript的主要内容
  • android获取手机的基本信息
  • pdb settrace
  • 境外投资收益如何交税
  • 车船税完税证明开具如何开具
  • 工程合同可以违背国家规范吗
  • 买辆12万的车上路共需要多少钱
  • 加拿大的环保
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设