软件构造——组合模式
1.模式动机——树形目录结构
文件夹——容器
文件——叶子
能够将容器对象和叶子对象进行递归组合,无需进行区分,可以一致地对待容器对象和叶子对象。
对于树形结构,当一个容器对象(如文件夹)的某一个方法被调用,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象,如子文件夹和文件)并调用执行。(递归调用)
2.组合模式
组合模式:组合多个对象形成树形结构以表示“部分-整体”的结构层次。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性。
将对象组织到树形结构中,可以用来描述整体与部分的关系
3.组合模式
模式结构
组合模式包含
Component:抽象构件
leaf:叶子构件
composite:容器构件
Client:客户类
关键是:定义了一个抽象构件类,既可以代表叶子又可以代表容器,而客户端对该抽象构件类进行编程。客户无需知道他是什么,可对其进行统一处理。
同时容器对象与抽象构件类之间还建立一个聚合关联关系,在容器对象中既可以包含叶子也可以包含容器依次实现递归组合,形成一个树形结构。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现