位置: 编程技术 - 正文

详解JavaScript设计模式开发中的桥接模式使用(javascript怎么设置)

编辑:rootadmin

推荐整理分享详解JavaScript设计模式开发中的桥接模式使用(javascript怎么设置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascriptz,javascriptz,javascript怎么设置,javascriptz,javascript怎么弄,javascript设置,javascriptide,javascriptz,内容如对您有帮助,希望把文章链接给更多的朋友!

桥接模式将抽象部分与实现部分分离开来,使两者都可以独立的变化,并且可以一起和谐地工作。抽象部分和实现部分都可以独立的变化而不会互相影响,降低了代码的耦合性,提高了代码的扩展性。按照GoF的定义,桥接模式的作用在于“将抽象与其实现隔离开来,以便二者独立变化”。这种模式对于Javascript中常见的事件驱动的编程大有裨益。

桥接模式最常见和实际的应用场合之一是事件监听器回调函数。 example:事件监听器,把事件处理的语句封装到回调函数中,通过接口而不是实现进行编程。

基本理论

桥接模式定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式主要有4个角色组成:(1)抽象类(2)扩充抽象类(3)实现类接口(4)具体实现类根据javascript语言的特点,我们将其简化成2个角色:(1)扩充抽象类(2)具体实现类怎么去理解桥接模式呢?我们接下来举例说明

桥接模式的实现

理解桥接模式的思想,关键是要理解其分离抽象部分和实现部分的思想。我们举例进行说明

最简单的桥接模式

详解JavaScript设计模式开发中的桥接模式使用(javascript怎么设置)

其实我们最经常用的jQuery的each函数就是一个典型的桥接模式,我们模拟其实现如下:

在这个例子中,我们通过each函数循环了arr数组,别看这个例子很常见,但其中就包含了典型的桥接模式。在这个例子中,抽象部分是each函数,也就是上面说的扩充抽象类,实现部分是fn,即具体实现类。抽象部分和实现部分可以独立的进行变化。这个例子虽然简单,但就是一个典型的桥接模式的应用。

插件开发中的桥接模式

桥接模式的一个适用场景是组件开发。我们平时开发组件为了适应不同场合,组件相应的会有许多不同维度的变化。桥接模式就可以应用于此,将其抽象与实现分离,使组件的扩展性更高。假设我们要开发一个弹窗插件,弹窗有不同的类型:普通消息提醒,错误提醒,每一种提醒的展示方式还都不一样。这是一个典型的多维度变化的场景。首先我们定义两个类:普通消息弹窗和错误消息弹窗。

这两个类就是前面提到的抽象部分,也就是扩充抽象类,它们都包含一个成员animation。两种弹窗通过show方法进行显示,但是显示的动画效果不同。我们定义两种显示的效果类如下:

这两个类就是具体实现类,它们实现具体的显示效果。那我们如何调用呢?

如果我们要增加一种动画效果,可以再定义一种效果类,传入即可。

总结

学习桥接模式关键是要理解抽象部分与实现部分的分离,使得二者可以独立的变化,而不必拘泥于形式。JS插件灵活的变化,适用场景的多变就非常适合使用这种模式来实现。使用桥接模式最重要的是要找出系统中不同的变化维度。(1)桥接模式优点:把抽象与实现隔离开,有助于独立地管理软件的各组成部分。(2)桥接模式缺点:每使用一个桥接元素都要增加一次函数调用,这对应用程序的性能会有一些负面影响。提高了系统的复杂程度。如果一个桥接函数被用于连接两个函数,而其中某个函数根本不会在桥接函数之外被调用,那么此时这个桥接函数就不是非要不可的。桥接模式“将抽象与实现隔离开来,以便二者独立变化”。它可以促进代码的模块化、促成更简洁的实现并提高抽象的灵活性。它可以用来把一组类和函数连接起来,而且提供了一种借助于特权函数访问私用数据的手段。

设计模式中的组合模式在JavaScript程序构建中的使用 定义组合,顾名思义是指用包含多个部件的对象创建单一实体。这个单一实体将用作所有这些部件的访问点,虽然这大大简化了操作,但也可能具有相

JavaScript设计模式开发中组合模式的使用教程 我们平时开发过程中,一定会遇到这种情况:同时处理简单对象和由简单对象组成的复杂对象,这些简单对象和复杂对象会组合成树形结构,在客户端

设计模式中的facade外观模式在JavaScript开发中的运用 概念外观模式(门面模式),是一种相对简单而又无处不在的模式。外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用。外观模式并

标签: javascript怎么设置

本文链接地址:https://www.jiuchutong.com/biancheng/370044.html 转载请保留说明!

上一篇:在javascript中创建对象的各种模式解析(javascript create)

下一篇:设计模式中的组合模式在JavaScript程序构建中的使用(设计模式三种)

  • 税务一证通
  • 法人私户转公户怎么操作
  • 已认证红字信息表
  • 企业注销盈利一定要交个税吗
  • 对公账户发工资1万要交税吗
  • 企业所得税费用税率
  • 房企与个人订立购房合同是否贴花?
  • 高新技术企业账务处理注意事项
  • 计提折旧需要减去预计净残值吗
  • 劳务报酬所得如何计税
  • 长投损失了如何处理
  • 税务局返还的个税手续费税率
  • 当月抵扣的发票可以下个月记账吗
  • 退货重新下单要付款吗
  • 股权转让时其他股东不配合怎么转让
  • 企业销售额达到多少交企业所得税
  • 小规模纳税人的企业所得税怎么算
  • 营改增房租增值税税率
  • 企业的不征税收入用于支出所形成
  • 建筑行业暂估成本的会计分录怎么写
  • 小规模所得税表格模板
  • 中小企业费用管理
  • 非流动资产基金对应哪个会计科目
  • 建厂房的费用怎么记账
  • 苹果电脑初始化设置
  • cpu游戏性能天梯图2023
  • 基准收益率是
  • 待抵扣进项税额是二级还是三级
  • 预提电费及电费发票到账的会计分录
  • 先发货后开票的销售业务流程
  • win11透明任务栏怎么设置
  • redis在php项目中的使用实例
  • PHP:ftp_ssl_connect()的用法_FTP函数
  • 废旧物资销售收入
  • Win11 Build 22000.348更新补丁KB5007262预览版发布(附更新修复内容汇总)
  • 会计虚假做账
  • php多线程curl
  • 任意公积金可以不提取吗
  • php十进制转二进制算法
  • 独立核算的分公司的账务处理
  • 使用的拼音
  • 微信小程序开发平台
  • php读取文件内容的方法和函数
  • 增值税普通发票查询真伪
  • 公司欠款 法人
  • db2 decoupled
  • 商铺转让费的会计分录
  • 暂估入库多了怎么办
  • 所得税做账是否需要发票
  • 新事业单位会计制度下固定资产的核算
  • 数据库镜像是什么意思
  • 资产负债表调整事项
  • 可以抵扣土地增值税的项目
  • 融资租赁固定资产不属于筹资活动
  • 广告费和业务宣传费税前扣除基数
  • 计提是好是坏
  • 固定资产入账标准最新规定企业
  • 国税退回多缴税款
  • 生产车间生产工人的薪酬计入什么
  • 给客户的促销费用怎么入账
  • windows server 2003安装域控制器的方法
  • win7安装sqlserver2000没反应
  • vcpkgsrv.exe是什么进程
  • lol进入游戏后电脑没声音
  • 开机越来越慢会不会是硬件的问题
  • linux系统软件包安装
  • onenotewindows10
  • win7退出家庭组
  • win8安装盘
  • 在linux操作系统中,/etc/rc.d/init.d
  • git打标签命令
  • cocos2dx schedule
  • 一次性批量随机抽取
  • layui jquery事件失效
  • 税务安装步骤
  • 广西税务局客服电话时间
  • 教师十三薪是什么意思
  • 10月份税务申报
  • 武汉税务局官网查询系统
  • 四川税控
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设