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

设计个网站需要怎么做win7怎么做网站域名绑定

设计个网站需要怎么做,win7怎么做网站域名绑定,wordpress+html5播放优酷,简约好看的网站模板非常棒!你现在进入了结构型设计模式中最典型的「树形结构」设计模式 —— 组合模式(Composite Pattern)。 我将通过简明解释 清晰代码 类图演示,一步步帮你理解它。 🧠 一句话定义 组合模式允许你将对象组合成树形结…

非常棒!你现在进入了结构型设计模式中最典型的「树形结构」设计模式 —— 组合模式(Composite Pattern)

我将通过简明解释 + 清晰代码 + 类图演示,一步步帮你理解它。


🧠 一句话定义

组合模式允许你将对象组合成树形结构来表示“整体-部分”的层次结构,客户端对单个对象和组合对象使用一致的方式处理。


🎯 生活类比

你有一个文件夹,里面可以包含:

  • 文件(不可分)
  • 子文件夹(可以再包含文件/子文件夹)

你希望:

✅ 用一样的方式对文件和文件夹进行操作(比如查看大小、遍历等)

这就是组合模式的典型应用!


✅ 为什么需要组合模式?

问题组合模式的解决
对象和容器对象要统一处理定义统一接口 Component
容器嵌套容器,不方便操作用递归统一管理结构
添加层次后代码爆炸容器类和单元类都实现统一接口,客户端不需要 if 判断

✅ 优点 vs ❌ 缺点

✅ 优点❌ 缺点
结构灵活,统一管理容器与单元职责不够明确(都实现统一接口)
客户端统一使用接口修改会影响所有子类
支持递归组合对于简单结构显得复杂

🐍 Python 示例:文件系统结构(组合 + 递归)


1️⃣ 抽象组件(统一接口)

from abc import ABC, abstractmethod# 抽象组件(无论是文件还是文件夹,都要实现 show 方法)
class FileSystemComponent(ABC):def __init__(self, name):self.name = name@abstractmethoddef show(self, indent=0):"""显示内容,子类必须实现"""pass

2️⃣ 叶子节点:文件(不可再包含)

class File(FileSystemComponent):def show(self, indent=0):# 打印文件名,加上缩进表示层级print(" " * indent + f"📄 文件: {self.name}")

3️⃣ 容器节点:文件夹(可嵌套)

class Folder(FileSystemComponent):def __init__(self, name):super().__init__(name)self.children = []  # 保存子文件或子文件夹def add(self, component: FileSystemComponent):# 向文件夹添加一个子组件(可能是 File 或 Folder)self.children.append(component)def show(self, indent=0):# 先打印当前文件夹名称(缩进代表层级)print(" " * indent + f"📁 文件夹: {self.name}")# 遍历所有子项,并递归调用每个子项的 show()for child in self.children:child.show(indent + 2)  # 缩进增加两格,表示进入下一层

🧠 一句话总结递归含义:
✅ 文件夹是自包含的容器,调用自己的 .show() 方法时,会再去调用所有子组件的 .show(),直到叶子节点(文件)为止。

4️⃣ 客户端使用

# 创建文件夹结构:根目录 → 文档 & 图片文件夹
root = Folder("根目录")
doc = Folder("文档")
img = Folder("图片")# 添加文件到文档文件夹
doc.add(File("简历.docx"))
doc.add(File("合同.pdf"))# 添加文件到图片文件夹
img.add(File("照片1.jpg"))
img.add(File("照片2.png"))# 构建总结构
root.add(doc)              # 根目录包含文档
root.add(img)              # 根目录包含图片
root.add(File("readme.txt"))  # 根目录包含一个独立文件# 展示结构(递归触发入口)
root.show()

✅ 输出结果:

📁 文件夹: 根目录📁 文件夹: 文档📄 文件: 简历.docx📄 文件: 合同.pdf📁 文件夹: 图片📄 文件: 照片1.jpg📄 文件: 照片2.png📄 文件: readme.txt

✅ 说明:对文件和文件夹使用同样的 .show() 方法,自动递归展示结构。


🧭 清晰完整类图(Mermaid)

包含多个
FileSystemComponent
-name
+show(indent)
File
+show(indent)
Folder
-children
+add(component)
+show(indent)

🧠 应用场景

应用领域示例
文件系统文件和目录统一管理
组织架构员工和部门层级
UI 组件按钮、容器、面板等统一渲染
数学表达式树节点可以是值,也可以是组合表达式

🧠 总结口诀

✅ 组合模式:把单个和一群统一看待,一起操作不区分
使用场景:整体-部分结构 + 客户端无需区分子节点/组合节点


是否想要我补充一个 UI 控件树 或 公司组织树 的组合模式版本?
📁📄📂 或者我帮你把这一套生成成图文学习卡片?继续深入?


文章转载自:

http://bLXOEGo7.nhgkm.cn
http://ILZW23oN.nhgkm.cn
http://1fRe5zx5.nhgkm.cn
http://7EN4p5dh.nhgkm.cn
http://z2QwrSlS.nhgkm.cn
http://8T1D9P35.nhgkm.cn
http://bWpEt5Qo.nhgkm.cn
http://32Yf7x1j.nhgkm.cn
http://XSISeLcD.nhgkm.cn
http://1j23Bmoo.nhgkm.cn
http://Yjysuj3s.nhgkm.cn
http://anFv7n4u.nhgkm.cn
http://28qI3LXS.nhgkm.cn
http://Oy7gOipu.nhgkm.cn
http://bs3OFsXP.nhgkm.cn
http://CFKQGWfU.nhgkm.cn
http://hHPbANmf.nhgkm.cn
http://cWNpUVPE.nhgkm.cn
http://P3QC8Jtz.nhgkm.cn
http://UCXt311L.nhgkm.cn
http://iGLjkjcS.nhgkm.cn
http://rdyLKaQX.nhgkm.cn
http://Y7yA2S1v.nhgkm.cn
http://NFtyoFrI.nhgkm.cn
http://1MRhD7QZ.nhgkm.cn
http://ZKjzjsVS.nhgkm.cn
http://qwmd5I6Q.nhgkm.cn
http://FqFNFiuJ.nhgkm.cn
http://pqahJP5R.nhgkm.cn
http://1H9FQJyI.nhgkm.cn
http://www.dtcms.com/wzjs/744301.html

相关文章:

  • 网站标题可以修改吗做网站需要会什么编程
  • 网站建设都有那些费用广告推广系统
  • 大气家具行业商城类公司网站织梦模板做网站公司哪家
  • 2003配置网站与2008的区别网站排名怎样做有效
  • 精美公司网站源码网站建设翻译插件
  • 西安网站开发中文html网站模板下载
  • 网站建设的颜色值网页网站培训班
  • 乐从容桂网站建设广州网站建设设计厂家
  • 网站建设经典文章怎么查网站的外链数量
  • 中联建设集团股份有限公司网站做网站收入
  • 建立个人网站的目的保定知名网站建设公司
  • 中国购物网站有哪些网站建设3要素
  • 滕州网站开发提供佛山顺德网站建设
  • 建站系统排行榜广州网站建设 企业
  • 吴江建设局网站农业服务网站建设方案
  • 网站建设工具 公司广州企业网站开发
  • 中山民众网站建设武威网站建设公司有
  • 昆明做网站找哪个公司好企业网站空间
  • 网站新闻前置备案标准网站建设推荐
  • 编辑网站用什么软件设计制作一个企业类型网站
  • dw做网站学习解析个人备案网站做盈利合法吗
  • 郑州做网站找赢博科技上海建筑建材业网招标
  • 网站qq联系怎么做wordpress 获取当前用户id
  • 公司的网站建设价格小程序开发费用一览表v5g华网天下
  • 外贸网站推广 雅虎问答有用吗淘宝客建设网站首页
  • 网站备案备注信息网站空间报价单
  • 百度商桥绑定网站修水新闻最新消息
  • 阜阳集团网站建设只做彩票网站犯法吗
  • 站长工具下载app攀枝花网站seo
  • 外贸电商网站设计网站禁止右键代码