位置: 编程技术 - 正文

JavaScript 设计模式之组合模式解析(js设计模式有什么用)

编辑:rootadmin
怎么说呢?!就像是动物(组合对象)一样,当它生下后代(叶对象)时,它的后代就有了某种功能(比如:挖洞,听力好等等);也像是一棵树,它有一个根(组合对象)然后是从这个棵树向外冒出的其他枝杆(组合对象)以及从这些枝杆又向外长的叶子(叶对象)。换句话说,就是当祖先已经有了,那么只要从这个祖先衍生出来的其他孩子(包括这个祖先下的其他组合对象)已经就具备了某种功能,看上去貌似又有些像是继承。“组合模式”在组合对象的层次体系中有两种类型的对象:叶对象和组合对象。组合模式擅长于对大批对象进行操作。 “组合模式”就是在做一个项目的时候,我们要把在这个项目中即将出现的方法都在组合对象中定义(包括叶对象中的方法),而它们的叶对象将会继承组合对象。当组合对象被实例化后其叶对象的方法也相应地被实例化了。可能我说的有些乱,下面就用一个例子来说明吧。 “组合模式”是一种专为创建Web上的动态用户界面而量身定制的模式。使用这种模式,可以用一条命令在多个对象上激发复杂的或递归的行为。 使用“组合模式”可以为我们带来两大好处: 1、可以用同样的方法处理对象的集合与其中的特定子对象。 2、可以用来把一批子对象组织成树形结构,并且使整棵树都可以被遍历。 只有同时具备以下两个条件进才适合使用组合模式: 1、存在一批组织成某处层次体系的对象(具体结构可能在开发期间无法知道)。 2、希望对这批对象或其中的一部分对象实话一个操作。 下面看一下示例: 具体要求是做一个图片库且可以有选择地隐藏或显示图片库的特定部分。这可能是单独图片,也可能是图片库。现在就需要两个类来完成这个功能:用作图片库的组合对象类和用于图片本身的叶对象类,代码如下: 在上面的代码中,首先定义的是组合对象类和叶对象类应该实现的接口。除了常规的组合远景一分钱上,这些类要怕硬欺软 操作只包括hide和show。接下来我们定义叶对象。叶对象实现hide和show,代码如下: 以下是设置叶对象的相应方法: 这是一个演示组合模式的工作方式的例子。每个类都很简单,但由于有了这样一种层次体系,我们就可以执行一些复杂操作。GalleryImage类的构造函数会创建一个image元素。这个类定义中的其余部分由空的组合对象方法(因为这是叶结点)和GalleryItem要求的操作组成。现在我们可以使用这两个类来管理图片: 组合模式之利,使用组合模式,简单的操作也能产生复杂的结果。不必编写大师手工遍历数组或其他数据结构的粘合代码,只需对最顶层的对象执行操作,主每一个子对象自己传递这个操作即可。这对于那些再三执行的操作尤其有用。在组合模式中,各个对象之间的耦合非常松散。每当对顶层组合对象执行一个操作时,实际上是在对整个结构进行尝试优先的搜索以查找节点。 组合模式之弊,由于对组合模式调用的任何操作都会被颇佳北至 它的所有子对象,如果这个层次体系很大的话,系统的性能将会受到影响。

推荐整理分享JavaScript 设计模式之组合模式解析(js设计模式有什么用),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript 设计模式之组合模式解析(js设计模式有什么用)

文章相关热门搜索词:js设计模式有哪几种,js设计模式有哪些,js设计模型,js设计模型,js设计模式应用,js设计模式应用,JAVASCRIPT设计模式与开发实践,JAVASCRIPT设计模式与开发实践,内容如对您有帮助,希望把文章链接给更多的朋友!

javascript 对象入门实例教程 1:构造函数法[Ctrl+A全选注:如需引入外部Js需刷新才能执行]注解:1:这里定义了一个Dog对象(在javascript中,函数就是对象,这里functionDog(name,weight)同时

JavaScript之信息的封装 js对象入门 JavaScript之信息的封装在编码前,我们需要了解如下几个术语;封装:对内部数据的表现形式和实施细节进行隐藏;私有属性和方法:外界只能通过其公

javascript 设计模式之单体模式 面向对象学习基础 单体模式(singleton)单体是在脚本加载时创建的,能将一系列有关联的变量和方法组织为一个逻辑单元,逻辑单元里面的内容通过单一的变量进行访问

标签: js设计模式有什么用

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

上一篇:javascript 单例模式演示代码 javascript面向对象编程(js编写一个标准的单例模式类)

下一篇:javascript 对象入门实例教程(js中对象)

  • 小规模纳税人销售自建不动产
  • 收到待报解预算收入怎么查退的什么税
  • 房产税的税收优惠政策
  • 长期股权投资在哪个报表里
  • 支付给个人的介绍费开什么发票
  • 所得税纳税申报表在哪里打印
  • 离退休人员的返乡政策
  • 发票认证完是不是没开票
  • 没有发票的管理费用汇算清缴的时候怎么调出来
  • 车辆增值税抵扣到什么时候结束
  • 计提增值税会计账务处理
  • 2017年7月1日通用机打发票能不能作为税收凭证?
  • 劳务派遣公司一般纳税人税率是多少
  • 存根联和记账联丢失有影响吗
  • 注销一定要去营业厅吗
  • 补提上个月折旧会计分录
  • 核定征收的合伙企业 取得的投资收益
  • 存货发出记账成本最高
  • 高新技术企业的研发费用比例
  • 出租车收税吗
  • win10重装系统后黑屏无图像
  • kb4507449安装失败
  • 外贸企业退税需要哪些资料
  • php语句和php变量都是区分大小写的
  • A meerkat in Namibia (© Danita Delimont/Offset by Shutterstock)
  • 未取得合法有效凭证可以税前扣除
  • 转账支票购买办公用品会计
  • 产生永久性差异时为什么计税基础等于账面价值
  • 暂估入库的税务分录
  • 内账怎么处理增值税
  • 玉兰种院子什么方位
  • 免税货物增值税计算公式
  • php生成随机字母数字代码
  • php数组中某个元素出现的个数
  • 一般纳税人销售自己使用过的汽车
  • 即插即用是什么意思?
  • YOLOv5|YOLOv7|YOLOv8改各种IoU损失函数:YOLOv8涨点Trick,改进添加SIoU损失函数、EIoU损失函数、GIoU损失函数、α-IoU损失函数
  • 发票金额和打款金额不一致怎么办
  • 债券溢折价摊销
  • 公司采购一直没走对公付款怎么处理
  • Python中自定义异常
  • sql server使用sql语句
  • 购买固定资产发生的支出是资本性支出
  • 人工安装费是几个点税税率
  • 销售货物收到货款
  • 往来款项属于
  • 土地入固定资产计提折旧吗
  • 上海电子税务局网站
  • 决算报表属于会计账簿吗
  • 获取验证码平台
  • 营改增后企业的税负控制
  • 税率变更对企业的影响
  • 产品出口认证
  • 免抵退账务处理流程
  • 应付账款的发生额怎么算
  • 抵债资产处置账务实例
  • 收到党支部经费如何做账
  • 申报表应纳税额和财务账金额不一致可以不改申报表吗
  • 公对公转账多久能到账
  • 日记账的标准格式是
  • mysql数据库详解
  • mysql 5.7.9 winx64在windows上安装遇到的问题
  • unix du
  • win8老是弹出广告
  • xp局域网
  • 怎么用uefi装win7
  • w7系统删除所有东西
  • windows8怎么设置
  • win11玩dota2
  • yosemite10.10.3beta3下载地址 os x10.10.3beta3官网下载
  • oracle12c怎么卸载
  • win10正式版激活码
  • jq判断浏览器
  • unity3d跑酷游戏教程
  • Unity3D: StartCoroutine 和 yield return 深入研究
  • express的中间件
  • python查找字符串中指定字符的个数
  • jquery实现点击按钮
  • android 发短信
  • 没有税费种认定信息是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设