js⾥的组合模式
组合模式
组合模式的定义:将对象组合成树形结构以表⽰部分-整体的层次结构。组合模式使得⽤户对单个对象和组合对象的使⽤具有⼀致性。简单来说就是把对象之间组合成树状结构,能通过⼀个元素的⽅法调⽤它的所有⼦元素的同名⽅法。
因为现在还没遇到过需要这个模式解决的问题,拿书上的⽂件夹例⼦来说明吧:
class Folder {
js获取子元素constructor(name) {
this.fileName = name;
this.children = [];
}
add(child) {
this.children.push(child);
}
scan() {
console.log("Folder:" + this.fileName);
for (const child of this.children) {
child.scan();
}
}
}
class File {
constructor(name) {
this.fileName = name;
}
add() {}
scan() {
console.log("File:" + this.fileName);
}
}
const folder1 = new Folder("first");
folder1.add(new File("file1"));
folder1.add(new File("file2"));
const folder2 = new Folder("secend");
folder2.add(new File("file3"));
folder1.add(folder2);
folder1.scan();
这样,通过调⽤第⼀个⽂件夹的扫描⽅法就能调⽤所有⼦元素的扫描⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。