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

为什么做免费视频网站广州网站改版方案

为什么做免费视频网站,广州网站改版方案,WordPress安装主题都不行,贵州网站备案🔄 回顾 Day 13:桥接模式小结 在 Day 13 中,我们学习了桥接模式(Bridge Pattern): 用于将“抽象”与“实现”分离,适用于双维度变化场景(如图形类型 渲染方式)。它强调…

🔄 回顾 Day 13:桥接模式小结

在 Day 13 中,我们学习了桥接模式(Bridge Pattern):

  • 用于将“抽象”与“实现”分离,适用于双维度变化场景(如图形类型 × 渲染方式)。
  • 它强调组合替代继承,解决类爆炸问题,提升系统可扩展性。

今天我们进入一个构建层级结构的重要模式——组合模式(Composite Pattern)

组合模式的目标是:让你以一致的方式对待单个对象和对象集合(树形结构)


一、组合模式的核心动机

✅ 什么是组合模式?

组合模式用于构建树状结构的对象系统,例如:

  • 文件夹包含文件和子文件夹
  • UI 容器包含多个控件
  • 公司组织结构:员工 ← 部门 ← 公司

核心哲学:

将对象组成树形结构,客户端可以“统一操作”叶子节点与中间节点。


二、UML 结构图

+----------------+
|   Component    |<------------------------------+
+----------------+                               |
| +operation()   |                               |
+----------------+                               |/\                                        |/  \                                       |
+-------------------+     +---------------------+ |
|  Leaf             |     |  Composite           | |
+-------------------+     +---------------------+ |
| +operation()      |     | +add(Component*)     | || +remove(Component*)  | || +operation()         | |+---------------------+ |

在这里插入图片描述


三、角色说明

角色职责说明
Component抽象类,统一接口
Leaf叶子节点,实现具体功能,不含子节点
Composite组合节点,内部维护子组件列表

四、C++ 实现:文件系统结构

✅ 抽象组件接口

class FileSystemNode {
public:virtual void display(int depth = 0) = 0;virtual ~FileSystemNode() = default;
};

✅ 叶子节点:文件

class File : public FileSystemNode {std::string name_;
public:File(const std::string& name) : name_(name) {}void display(int depth = 0) override {std::cout << std::string(depth, '-') << name_ << std::endl;}
};

✅ 组合节点:文件夹

class Directory : public FileSystemNode {std::string name_;std::vector<std::unique_ptr<FileSystemNode>> children_;public:Directory(const std::string& name) : name_(name) {}void add(std::unique_ptr<FileSystemNode> node) {children_.emplace_back(std::move(node));}void display(int depth = 0) override {std::cout << std::string(depth, '-') << name_ << "/" << std::endl;for (const auto& child : children_) {child->display(depth + 2);}}
};

✅ 使用示例

int main() {auto root = std::make_unique<Directory>("root");root->add(std::make_unique<File>("file1.txt"));auto subDir = std::make_unique<Directory>("subdir");subDir->add(std::make_unique<File>("file2.txt"));subDir->add(std::make_unique<File>("file3.txt"));root->add(std::move(subDir));root->display();return 0;
}

输出:

root/
--file1.txt
--subdir/
----file2.txt
----file3.txt

五、组合模式适用场景

场景对象树结构说明
操作系统文件系统文件 + 文件夹,操作接口统一
图形界面控件窗口、容器、按钮、文本框构成控件树
公司组织架构CEO → 部门主管 → 员工
报表结构层级表头、表体、表尾、字段
HTML DOM 树节点 + 元素 + 属性

六、优点与缺点总结

✅ 优点:

  • 统一接口,客户端无差别调用
  • 树结构天然适合层次建模
  • 扩展方便,添加新节点只需实现 Component

❗ 缺点:

  • 违背接口隔离原则:叶子节点和组合节点共用接口,部分函数空实现
  • 调试复杂,结构越深越难定位问题

七、与装饰器 / 责任链等模式对比

模式核心区别类似点
Composite结构树形,有聚合子对象Component 接口统一
Decorator功能增强,包裹单一对象接口一致、动态组合
Chain责任链传递,节点决定是否继续传递多节点连接,共同参与处理

八、面试回答模板

“在我们的配置中心中,使用组合模式构建配置节点树,既可以是叶子属性(字段),也可以是组合节点(嵌套组)。所有节点都继承自统一接口,使我们可以用递归统一地遍历配置结构、序列化、验证,代码简洁且扩展性好。”

✅ 建议突出树形结构、递归遍历、统一调用等优势。


九、记忆口诀

“树形结构走统一,组合调用不分离;叶子整体皆一类,层层嵌套递归易。”


十、明日预告:Day 15

享元模式(Flyweight Pattern):通过共享技术减少对象数量,提升内存利用效率。


文章转载自:

http://B7YzBv13.yLqpp.cn
http://4NqeUnsJ.yLqpp.cn
http://1DpAJvMM.yLqpp.cn
http://UOQSpxDX.yLqpp.cn
http://XFn5FQHI.yLqpp.cn
http://PaQedRME.yLqpp.cn
http://ynJyjk3E.yLqpp.cn
http://AJA59pmF.yLqpp.cn
http://p8iSDapp.yLqpp.cn
http://zu3N64II.yLqpp.cn
http://WOftIK8j.yLqpp.cn
http://Mn8tThHv.yLqpp.cn
http://lcAufnJo.yLqpp.cn
http://6CyAH1ky.yLqpp.cn
http://S6M0PWXi.yLqpp.cn
http://lfEd0BUt.yLqpp.cn
http://Q4SjI8fj.yLqpp.cn
http://fXFX4k8Q.yLqpp.cn
http://jJs4NpWn.yLqpp.cn
http://MBPXWW3p.yLqpp.cn
http://ceNu2FY0.yLqpp.cn
http://mp2sXaoM.yLqpp.cn
http://pvIAUFZG.yLqpp.cn
http://Q5EVjGoB.yLqpp.cn
http://0yuAPvsg.yLqpp.cn
http://Jb5vlQ9i.yLqpp.cn
http://PCEKt2Rf.yLqpp.cn
http://xsqpRXsj.yLqpp.cn
http://vptAqCCQ.yLqpp.cn
http://IEg23UI1.yLqpp.cn
http://www.dtcms.com/wzjs/622361.html

相关文章:

  • 哪里能注册免费的网站武山县建设局网站
  • 龙岗网站建设推广给我一个可以看片的
  • 如何查网站处罚过管理系统和网站哪个好做
  • 浏阳网站定制网页设计个人总结800字
  • 网站建设合同甲乙双方怎么确定施工企业安全生产管理体系案例
  • 空间购买后打不开网站快速搭建外贸网站
  • 电子商务网站建设策划案网站会员体系
  • 上海个人医疗网站备案淘宝建设网站的
  • 怎么做购物网站的购物车wordpress 设置导航栏
  • 做红酒网站个人网站设计模板中文
  • 网站推广宣传微信公司
  • 建立网站的三种方式濮阳创建网站公司
  • 手机网站收录搜索网页
  • 嘉兴南湖区优秀营销型网站建设免费3d动画制作软件
  • 网站转移后后台无法登陆wordpress企业内网主题
  • 网站微场景代码泰安房产网站建设
  • 南通经济开发区城乡建设局网站网站空间怎么使用
  • 网站在哪里实名认证wordpress 搬迁插件
  • php5 mysql网站开发实例精讲WordPress全球用户量2019
  • 天津重型网站建设推荐网站设计公司 知道万维科技
  • 株洲营销型网站建设代理平台登录
  • 富源县建设局的网站是什么做的比较好旅游网站
  • 外贸网站使用攻略公司网站开发费分录是
  • 服饰品牌网站建设做民宿推广都有哪些网站
  • 做门头上那个网站申报企业工商信息查询系统官网
  • 网站建设公司市场策划方案济南工程建设验收公示网
  • 免费的视频网站如何赚钱企业it外包服务公司
  • 移动端网站建设的请示朋友圈海报用什么网站做的
  • 怎样做网站标题的图标在线识别图片来源
  • 邢台做网站口碑好延安网站建设费用