设计模式:组合模式(Composite Pattern) import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; /** * 组合模式。 * author Bright Lee */ public class CompositePattern { public static void main(String[] args) { Component root new Composite(); Component leaf new Leaf(); root.add(leaf); root.operation(); } } /** * Component为组合中的所有对象定义一个接口不管是组合还是叶节点。 */ interface Component { void operation(); void add(Component component); void remove(Component component); ListComponent getChildren(); } /** * 组合。 */ class Composite implements Component { private LinkedHashMapComponent, Component childrenMap new LinkedHashMapComponent, Component(); public void operation() { System.out.println(我是一个Composite我的子节点是); ListComponent children getChildren(); for (Component child : children) { child.operation(); } } public void add(Component component) { childrenMap.put(component, component); } public void remove(Component component) { childrenMap.remove(component); } public ListComponent getChildren() { ListComponent list new ArrayListComponent(childrenMap.values()); return list; } } /** * 叶子节点。 */ class Leaf implements Component { public void operation() { System.out.println(我是一个Leaf。); } public void add(Component component) { } public void remove(Component component) { } public ListComponent getChildren() { ListComponent list new ArrayListComponent(0); return list; } }运行结果我是一个Composite我的子节点是我是一个Leaf。青蛙客服系统https://download.csdn.net/download/look4liming/93326820

相关新闻

最新新闻

ASE子函数:模块化Shader开发,告别面条代码,提升Unity特效制作效率

ASE子函数:模块化Shader开发,告别面条代码,提升Unity特效制作效率

1. 从“面条代码”到模块化:为什么我们需要ASE子函数在Unity的Shader开发中,尤其是使用Amplify Shader Editor(ASE)这类可视化工具时,很多朋友,包括我自己刚上手那会儿,都容易陷入一个误区&…

2026/8/28 20:25:34
BFS与记忆化搜索结合:状态压缩解决迷宫寻路优化

BFS与记忆化搜索结合:状态压缩解决迷宫寻路优化

1. 从一道国赛真题说起:当BFS遇上记忆化搜索去年国赛有一道题,让不少选手印象深刻,也让我在赛后复盘时琢磨了很久。题目本身描述的是一个经典的迷宫寻路问题,但它的数据规模和状态设计,让单纯的广度优先搜索&#xff0…

2026/8/28 20:25:34
算法竞赛计数问题精解:数论与动态规划的融合策略

算法竞赛计数问题精解:数论与动态规划的融合策略

1. 项目概述:从“数数”到竞赛解题的思维跃迁看到“数数 2022年国赛 数论-动态规划”这个标题,很多刚接触算法竞赛的同学可能会有点懵。这看起来像是一个具体的题目,但“数数”本身又像是一个宽泛的动作。实际上,这个标题精准地指…

2026/8/28 20:25:34
Unity Addressables WebGL资源加载与进度条实现全攻略

Unity Addressables WebGL资源加载与进度条实现全攻略

简介:在Unity游戏开发中,资源管理一直是工程实践的核心挑战,尤其当项目规模扩大后,传统AssetBundle的依赖打包、加载顺序和内存释放问题常让人头疼。Addressables作为Unity官方推出的资源管理方案,基于AssetBundle封装…

2026/8/28 20:25:34
蓝桥杯国赛C++ B组深度复盘:从算法思维到工程实践的竞赛攻略

蓝桥杯国赛C++ B组深度复盘:从算法思维到工程实践的竞赛攻略

1. 项目概述:一次对顶级算法竞赛的深度复盘 去年蓝桥杯国赛结束后,我和几个一起备赛的学弟学妹把C B组的真题又从头到尾啃了一遍。这个过程远不止是“对答案”那么简单,更像是一次外科手术式的解剖——把每道题背后的出题逻辑、考察的知识点盲…

2026/8/28 20:25:34
DC-2 通关详细教程

DC-2 通关详细教程

本文是一篇 DC-2 靶机的完整通关 Writeup。DC-2 是 VulnHub 上的经典入门靶机,主要考察 WordPress 站点渗透、用户名枚举、密码爆破、SSH 登录、rbash 受限 shell 逃逸、以及利用 git 的 SUID 提权 等一系列基础但非常实用的渗透流程。 全程在 Kali Linux 下操作&am…

2026/8/28 20:20:34