前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式 ☞ 结构型模式之组合模式

设计模式 ☞ 结构型模式之组合模式

作者头像
Demo_Null
发布2021-01-06 10:57:26
2610
发布2021-01-06 10:57:26
举报
文章被收录于专栏:Java 学习Java 学习

1.1 简介

1.1.1 概述

  组合(Composite Pattern)模式的定义:又称整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。在现实生活中,存在很多“部分-整体”的关系,例如,大学中的学院与院系、总公司中的部门与分公司等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。组合模式一般用来描述整体与部分的关系,它将对象组织到树形结构中,顶级的节点被称为根节点,根节点下面可以包含树枝节点和叶子节点,树枝节点下面又可以包含树枝节点和叶子节点。

在这里插入图片描述
在这里插入图片描述

1.1.2 优缺点

优点:  ① 组合模式使得客户端可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象还是组合对象,这简化了客户端代码;  ② 更容易在组合体内加入新的对象,客户端不会因为加入了新的对象而更改源代码,满足“开闭原则”;

缺点:  ① 设计较复杂,客户端需要花更多时间理清类之间的层次关系;  ② 不容易限制容器中的构件;  ③ 不容易用继承的方法来增加构件的新功能;

1.2 案例

  举例来说,一个国际公司总部下面有财务部、技术部、大中华区分公司等,而大中华区分公司下面又可以有财务部、技术部、华中分公司等。叶子节点(Leaf)下面没有公司,负责具体的事物;组合节点(Composite)下面可以有叶子节点和组合节点,既可以下设部门负责具体事务,也可以继续开分公司。

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 简介
    • 1.1.1 概述
      • 1.1.2 优缺点
      • 1.2 案例
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档