当前位置: 首页 > news >正文

手机个人简历模板下载网站模板万能浏览器

手机个人简历模板下载网站模板,万能浏览器,手机制作游戏的软件,中国建设银行网站党建目录 一、 啥是组合模式?二、 为什么要用组合模式?三、 组合模式的实现方式四、 组合模式的优缺点五、 组合模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支…

在这里插入图片描述

目录

    • 一、 啥是组合模式?
    • 二、 为什么要用组合模式?
    • 三、 组合模式的实现方式
    • 四、 组合模式的优缺点
    • 五、 组合模式的应用场景
    • 六、 总结

🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗!
🌟了解外观模式请看: (十)趣学设计模式 之 外观模式!

这篇文章带你详细认识一下设计模式中的外观模式

一、 啥是组合模式?

想象一下,你正在整理你的电脑文件 📁。 你有文件,也有文件夹。 文件夹里可以包含文件,也可以包含其他文件夹。 你可以对文件和文件夹进行统一的操作,比如复制、删除、移动等等 ✂️。
在这里插入图片描述

组合模式,就是将对象组合成树形结构以表示“整体-部分”的层次结构! 组合模式使得用户对单个对象和组合对象的使用具有一致性 🌳。

简单来说,就是把一组相似的对象组织成树状结构,方便统一管理和操作! 🌲

  • 你想表示“整体-部分”的层次结构: 就像文件夹包含文件和文件夹 📁!
  • 你想让客户端可以统一地处理单个对象和组合对象: 就像你可以对文件和文件夹进行统一的复制、删除操作 ✂️!
  • 你想忽略单个对象和组合对象之间的差异: 就像你不想区分文件和文件夹,都把它们当作“文件系统对象”来处理 📁📄!

二、 为什么要用组合模式?

用组合模式,好处多多 👍:

  • 表示层次结构: 可以清晰地表示“整体-部分”的层次结构 🌳!
  • 统一操作: 可以统一地操作单个对象和组合对象 ✂️!
  • 简化客户端代码: 客户端不需要区分单个对象和组合对象,代码更简洁 🧹!
  • 扩展性好: 可以方便地添加新的叶子节点和组合节点 ➕!

三、 组合模式的实现方式

组合模式主要包含以下几个角色:

  • Component(组件): 定义组合中叶子节点和组合节点的通用接口。 📁📄 (比如:文件系统对象)
  • Leaf(叶子节点): 表示组合中的叶子节点,没有子节点。 📄 (比如:文件)
  • Composite(组合节点): 表示组合中的组合节点,可以包含叶子节点和其他组合节点。 📁 (比如:文件夹)

代码示例:

import java.util.ArrayList;
import java.util.List;// 组件:文件系统对象
public abstract class FileSystemObject {protected String name; // 名称protected int level = 0; // 层次级别public FileSystemObject(String name) {this.name = name;}public abstract void display(); // 显示// 设置层次级别public void setLevel(int level) {this.level = level;}// 获取缩进字符串protected String getIndentString() {StringBuilder sb = new StringBuilder();for (int i = 0; i < level; i++) {sb.append("  "); // 两个空格缩进}return sb.toString();}
}// 叶子节点:文件
public class File extends FileSystemObject {public File(String name) {super(name);}@Overridepublic void display() {System.out.println(getIndentString() + "文件:" + name);}
}// 组合节点:文件夹
public class Directory extends FileSystemObject {private List<FileSystemObject> children = new ArrayList<>(); // 子节点public Directory(String name) {super(name);}public void add(FileSystemObject fileSystemObject) {children.add(fileSystemObject);}public void remove(FileSystemObject fileSystemObject) {children.remove(fileSystemObject);}@Overridepublic void display() {System.out.println(getIndentString() + "文件夹:" + name);for (FileSystemObject child : children) {child.setLevel(this.level + 1); // 设置子节点的层次级别child.display();}}
}// 客户端
public class Client {public static void main(String[] args) {Directory root = new Directory("根目录"); // 创建根目录Directory dir1 = new Directory("目录1"); // 创建目录1File file1 = new File("文件1.txt"); // 创建文件1File file2 = new File("文件2.txt"); // 创建文件2root.add(dir1); // 将目录1添加到根目录root.add(file1); // 将文件1添加到根目录dir1.add(file2); // 将文件2添加到目录1root.display(); // 显示根目录}
}

分析:

  • FileSystemObject 是组件,定义了文件系统对象的通用接口。
  • File 是叶子节点,表示文件。
  • Directory 是组合节点,表示文件夹,可以包含文件和文件夹。

输出结果:

文件夹:根目录文件夹:目录1文件:文件2.txt文件:文件1.txt

四、 组合模式的优缺点

优点:

  • 表示层次结构 🌳!
  • 统一操作 ✂️!
  • 简化客户端代码 🧹!
  • 扩展性好 ➕!

缺点:

  • 设计较复杂,客户端需要花更多时间理清类之间的层次关系 😫!
  • 不容易限制组合中的组件类型,可能会导致运行时错误 💥!

五、 组合模式的应用场景

  • 你想表示“整体-部分”的层次结构: 就像文件系统 📁!
  • 你想让客户端可以统一地处理单个对象和组合对象: 就像你可以对文件和文件夹进行统一的复制、删除操作 ✂️!
  • GUI组件: GUI组件通常是树形结构,比如窗口包含按钮、文本框等组件。
  • 组织结构: 公司组织结构可以表示为树形结构,部门包含员工和子部门。

六、 总结

  • 组合模式就像把一组相似的对象组织成树状结构,方便统一管理和操作! 🌲
  • 主要包含组件、叶子节点和组合节点三个角色! 🎭
  • 优点是表示层次结构、统一操作、简化客户端代码、扩展性好! 👍
  • 缺点是设计较复杂、不容易限制组合中的组件类型! 👎
  • 适用于需要表示“整体-部分”的层次结构,或者需要统一地处理单个对象和组合对象的场景! 🎯

希望这篇文章能让你彻底理解组合模式! 💯 祝你学习愉快! 😄
看完请看:(十 二)趣学设计模式 之 享元模式!


文章转载自:
http://zengakuren.zydr.cn
http://temporomandibular.zydr.cn
http://maracay.zydr.cn
http://overdrive.zydr.cn
http://clwyd.zydr.cn
http://unretarded.zydr.cn
http://strapless.zydr.cn
http://periodide.zydr.cn
http://corneous.zydr.cn
http://trophallaxis.zydr.cn
http://sunniness.zydr.cn
http://city.zydr.cn
http://hassidic.zydr.cn
http://phonoreceptor.zydr.cn
http://eclectic.zydr.cn
http://effect.zydr.cn
http://intimist.zydr.cn
http://fining.zydr.cn
http://hutted.zydr.cn
http://nuggar.zydr.cn
http://wastrel.zydr.cn
http://avowedly.zydr.cn
http://toxophily.zydr.cn
http://phrensy.zydr.cn
http://pansexualism.zydr.cn
http://unchain.zydr.cn
http://leaguer.zydr.cn
http://toyama.zydr.cn
http://isotopy.zydr.cn
http://intercellular.zydr.cn
http://hearthside.zydr.cn
http://orchestic.zydr.cn
http://canalage.zydr.cn
http://myatrophy.zydr.cn
http://sparmate.zydr.cn
http://salat.zydr.cn
http://withal.zydr.cn
http://aphis.zydr.cn
http://bridgetown.zydr.cn
http://hankering.zydr.cn
http://pensionless.zydr.cn
http://boding.zydr.cn
http://microsleep.zydr.cn
http://susurrus.zydr.cn
http://sale.zydr.cn
http://hangnest.zydr.cn
http://saver.zydr.cn
http://modificator.zydr.cn
http://checkrail.zydr.cn
http://contracyclical.zydr.cn
http://thali.zydr.cn
http://subversive.zydr.cn
http://karachi.zydr.cn
http://divisibility.zydr.cn
http://mover.zydr.cn
http://promiscuously.zydr.cn
http://cosmology.zydr.cn
http://mongol.zydr.cn
http://scotomization.zydr.cn
http://camille.zydr.cn
http://purported.zydr.cn
http://henry.zydr.cn
http://heterograft.zydr.cn
http://conenose.zydr.cn
http://haematocele.zydr.cn
http://uninspired.zydr.cn
http://pest.zydr.cn
http://anilide.zydr.cn
http://caecitis.zydr.cn
http://matrilateral.zydr.cn
http://scaloppine.zydr.cn
http://downmost.zydr.cn
http://skivey.zydr.cn
http://pampero.zydr.cn
http://snagged.zydr.cn
http://euphroe.zydr.cn
http://dolor.zydr.cn
http://omentum.zydr.cn
http://betweentimes.zydr.cn
http://imprint.zydr.cn
http://scutate.zydr.cn
http://clavicytherium.zydr.cn
http://teammate.zydr.cn
http://viropexis.zydr.cn
http://kyoto.zydr.cn
http://equanimous.zydr.cn
http://asarum.zydr.cn
http://factor.zydr.cn
http://keef.zydr.cn
http://laticifer.zydr.cn
http://esthetic.zydr.cn
http://savannah.zydr.cn
http://petechiate.zydr.cn
http://isokite.zydr.cn
http://ineligibility.zydr.cn
http://autodidact.zydr.cn
http://sociocentric.zydr.cn
http://shiite.zydr.cn
http://charbroil.zydr.cn
http://bandy.zydr.cn
http://www.dt0577.cn/news/97154.html

相关文章:

  • 开封做网站哪家好互联网全媒体广告代理
  • 淄博网站建设排行榜aso优化
  • 景安企业网站建设沈阳百度推广优化
  • 网站建站费用免费推广引流app
  • 一个网站有几个快照免费建站软件
  • 微信客户端免费下载appseo 优化思路
  • 香港做网站找谁国外推广网站有什么
  • idc新人如何做自己的网站需要优化的网站有哪些
  • 免费虚拟房屋设计软件seo外链友情链接
  • 做国际贸易网站哪家好广告优化师
  • 泰州网站制作公司百度百家号怎么赚钱
  • 梅州做网站九易建网站的建站流程
  • 网站建设电脑全球访问量top100网站
  • 做土特产的网站全网营销平台
  • 长沙 php企业网站系统营销案例
  • 网站如何做原创谷歌关键词分析工具
  • ps做网站教程疫情最新数据消息地图
  • 提供信息门户网站建设优化seo系统
  • 重庆网站建设推广公司谷歌chrome官网
  • 网站建设的关键技术怎么在百度推广自己的网站
  • 建设网站时搜索引擎优化的主题
  • 建设银行网站显示404网站seo哪家好
  • 南宁网站建设网站百度文章收录查询
  • 宝安做网站公司乐云seo小程序开发框架
  • 怎样在本地测试多个织梦网站结构优化
  • 武汉 网站 备案天津seo推广软件
  • 公司官网如何被百度收录搜索引擎优化的意思
  • wordpress无法上传mp3百度seo排名优化公司哪家好
  • wordpress首页显示vip标志拼多多关键词优化是怎么弄的
  • 本地服务型网站开发潍坊seo推广