大话设计模式读书笔记-19组合模式

  • 时间:2020-04-24 20:50 作者:QuietHeart 来源: 阅读:460
  • 扫一扫,手机访问
摘要:bigtalk.jpg第19章 分公司=一部门——组合模式概念组合模式将对象组合成树形结构以表示“部分”、“整体”的层次关系。使得客户可以以同样的方式对待单个对象和组合对象。比方文本编辑中,字、句、段的格式化。实现包含部分:Component:公共接口,形容了各层次内部和之间可以一致对待的通用功能。
bigtalk.jpg

第19章 分公司=一部门——组合模式

概念

组合模式将对象组合成树形结构以表示“部分”、“整体”的层次关系。使得客户可以以同样的方式对待单个对象和组合对象。比方文本编辑中,字、句、段的格式化。

实现

包含部分:

  • Component:公共接口,形容了各层次内部和之间可以一致对待的通用功能。包含"Add"/"Remove"
  • Composite:分支(继承Component),可以包含"Add"/"Remove"接口增加子成员
  • Leaf:叶子(继承Component),"Add"/"Remove"接口无用
  • Client: 创立根分支、叶子,组织成树形结构,并访问。除了创立对象处,所有的使用接口传参都为父类就可。

类图如下:

img

用户端使用:

imgimg

透明模式和安全模式

透明模式中,分支和叶子继承同样的类,让用户端避免了判断是叶子还是非叶子,只是叶子中的增删子成员无意义;安全模式相反,并且用不同的类标识叶子和树枝,但是使用时需要判断。

场景

使用场景:整体与部分,并且两者需要被同样对待。比方公司与分公司、办事处层级不同,但是使用同一套管理方式,都有财务、人力资源功能;不同在于公司、分公司可以增添子节点(一个公司多个分公司,一个分公司多个办事处),而办事处做为叶子,增添字节点的方法没有意义。这样使用组合模式,将它们组织成树形接口,再统一的方式管理整体与部分,比单独定义一个“财务”、“人力”类,给各个有层次的公司结构中平行共享的使用要正当的多。

特点:组合模式可以让客户一致地使用组合结构和单个对象。

需要仔细思考。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部