1、组合模式将对象组合成树形结构,以表示部分-整体的层次结构。
2、除了用来表示树形结构外,组合模式的另一个优点是通过对象的多态性表达,用户可以一致地使用单个对象和组合对象。
使用组合模式后,很容易扫描整个文件夹,我们只需要操作树的顶部对象。
实例
var Folder = function (name) { this.name = name; this.files = []; }; Folder.prototype.add = function (file) { this.files.push(file); }; Folder.prototype.scan = function () { console.log('开始扫描文件夹: ' + this.name); for (var i = 0, file, files = this.files; file = files[i++];) { file.scan(); } }; var File = function (name) { this.name = name; }; File.prototype.add = function () { throw new Error('文件下面不能再添加文件'); }; File.prototype.scan = function () { console.log('开始扫描文件: ' + this.name); }; 接下来创建一些文件夹和文件对象,并且让它们组合成一棵树。 var folder = new Folder('学习资料'); var folder1 = new Folder('JavaScript'); var folder2 = new Folder('jQuery'); var file1 = new File('JavaScript 设计模式与开发实践'); var file2 = new File('精通jQuery'); var file3 = new File('重构与模式') folder1.add(file1); folder2.add(file2); folder.add(folder1); folder.add(folder2); folder.add(file3);
以上就是JavaScript组合模式的介绍,希望对大家有所帮助。更多Javascript学习指路:
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。
知库网还为您提供以下相关内容希望对您有帮助:
JavaScript 设计模式(十一):组合模式
组合模式是一种用于处理“部分-整体”层次结构的模式,通过对象的多态性,使得用户在处理单个对象与组合对象时保持一致性。以文件目录和DOM文档树为例,我们可以直观理解这种模式。在组合模式中,树对象和叶对象共享相同的接口,树对象包含一个叶对象列表,当执行方法时,会向列表中的叶对象依次发送请求。例...
Promise的三兄弟:all(), race()以及allSettled()
组合模式允许我们将对象整合成树形结构,以表示“部分-整体”的层次结构。在 JavaScript 的 Promise 应用中,组合模式使得用户可以对单个对象和组合对象的使用具有统一性。4. Promise.all() 方法 Promise.all() 方法接收一个 Promise 对象的数组作为参数,返回一个 Promise。这个 Promise 在数组中所有 Prom...
JavaScript 创建对象的 7 种方法
3. **原型模式**:这种模式通过修改`Person.prototype`来创建对象,优点在于可以动态添加方法到对象中,缺点是可能会导致原型链的混乱,影响性能。4. **构造函数和原型组合模式**:结合了构造函数和原型模式的优点,优点是代码结构清晰,易于维护。缺点是需要额外的步骤来更新实例的原型链。5. **动态原...
网站开发模式除了MVC外还有什么?
Model1模式:使用纯JSP或者JSP+JavaBean开发,存在如下缺陷:JSP页面中混合了HTML和JAVA代码,从而给代码的开发和阅读带 来了麻烦;系统后期维护和扩展非常困难,例如在JSP页面进行数据库连接和操作,如果需要对数据库进行任何修改,都必须打开所有操作数据库的JSP页面进 行相应的修改,当页面非常多的时候,工...
JavaScript设计模式作者简介
Ross Harmes, 一位经验丰富的资深Web程序员,拥有超过10年的编程经历,目前在Yahoo担任前端工程师。他的专业领域延伸至开源技术,特别以Birch图片博客软件的开发者身份为人所熟知。另一位杰出的JavaScript专家是Dustin Diaz。作为Google的用户界面工程师,他在技术领域同样显赫。Diaz是新一代JavaScript框架DEDl...
vue的优势有哪些?
React的设计理念是提供强大而复杂的机制,让开发者来适应我;而Vue则是为了更适应开发者的使用习惯,在很多设定上都是让开发者怎么爽怎么来。比如Vue的API跟传统Web开发者熟悉的模板契合度非常高。Vue的单文件组件是以模板+JavaScript+CSS的组合模式呈现,它跟Web现有的HTML、JavaScript、CSS能够更好地配合...
为什么MVC不是一种设计模式
1.MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。2.框架模式和设计模式实际上它们完全是不同的概念。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时...
javascript创建对象的几种模式介绍_基础知识
原型模式:每个函数都有一个prototype属性,该属性是一个指针,指向一个对象,该对象包含其函数创建的所有实例共享的属性与方法。原型对象,构造函数以及实例之间的关系如下图: 图解:1:构造函数以及由构造函数创建的实例,它们的prototype属性都指向构造函数的原型对象。2:构造函数的原型对象具有constructor...
JS是什么意思
JS = Jiang Shi,僵尸,反恐精英Online中生化模式中的僵尸阵营;JavaScript代码有时也称作僵尸代码。JS = Ji Si,祭司,春秋Q传中具有着无上高贵气质的秦青一直是列国诸侯争相膜拜的对象,传说她已经传承了上古天神女娲的神圣法术,可赋予人类强大的生存力量。JS = Jia Su,加速线,衡量股价涨速的工具,...
软件开发
掌握面向对象的设计原则:“开—闭”原则(OCP)、里氏代换原则(LSP)、依赖倒转原则(DIP)、接口隔离原则(ISP)、组合/聚合复用原则(CARP)、迪米特法则(LoD)。掌握主流的设计模式:工厂模式(Factory)、单例模式(Singleton)、观察者模式(Observer)、组合模式(Composite)、状态模式(State)等,...
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。
怀疑对方AI换脸可以让对方摁鼻子 真人摁下去鼻子会变形
女子野生动物园下车狼悄悄靠近 后车司机按喇叭提醒
睡前玩8分钟手机身体兴奋1小时 还可能让你“变丑”
惊蛰为啥吃梨?倒春寒来不来就看惊蛰
男子高速犯困开智能驾驶出事故 60万刚买的奔驰严重损毁