【2013-12-17】设计模式学习笔记:组合模式
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2013-12-17 标题设计模式学习笔记组合模式分类编程 / 设计模式 / java 标签设计模式·java·组合模式设计模式学习笔记组合模式最近在看《设计模式之禅》这本书收获良多作者不愧是工作多年的大牛将各种设计模式讲解的非常透彻。这里备份下书中的【 组合模式 】代码github【 https://github.com/cstriker1407/design_pattern 】代码如下abstractclassCrop{privateStringname;privateListCropcropListnewArrayListCrop();publicCrop(Stringname){super();this.namename;}publicListCropgetCropList(){returncropList;}publicCropaddCrop(Cropcrop){this.cropList.add(crop);returnthis;}publicabstractStringoper();publicvoidinfo(){if(cropList.isEmpty()){System.out.println(No Crop, I am the leaf: name oper());}else{System.out.println(I Have childeren, I am: name oper());for(Cropcrop:cropList){crop.info();}}}}classLeafextendsCrop{publicLeaf(Stringname){super(name);}OverridepublicStringoper(){returnLeafOper;}}classLeaderextendsCrop{publicLeader(Stringarg0){super(arg0);}OverridepublicStringoper(){returnLeaderOper;}}测试代码publicclassCompositeTest{publicstaticvoidtest(){LeaderA01newLeader(A01);LeaderA11newLeader(A11);LeaderA12newLeader(A12);LeafB13newLeaf(B13);A01.addCrop(A11).addCrop(A12).addCrop(B13);LeafB21newLeaf(B21);LeafB22newLeaf(B22);LeafB23newLeaf(B23);A11.addCrop(B21);A12.addCrop(B22).addCrop(B23);A01.info();}}

相关新闻

C++ CAD数据交换:libdxfrw库读写DXF/DWG文件实战指南

C++ CAD数据交换:libdxfrw库读写DXF/DWG文件实战指南

1. 项目概述:为什么你需要关注 libdxfrw?如果你正在用 C 开发与 CAD 数据打交道的应用,无论是做机械设计软件、建筑信息模型(BIM)工具、数控(CNC)加工路径生成,还是游戏引擎的地图编…

2026/7/14 6:27:29 阅读更多 →
stable-diffusion.cpp:纯C/C++实现AI绘画推理,打造轻量高效的生成式AI运行时

stable-diffusion.cpp:纯C/C++实现AI绘画推理,打造轻量高效的生成式AI运行时

1. 项目概述:为什么我们需要一个纯C/C的Stable Diffusion推理库?如果你玩过AI绘画,大概率用过Stable Diffusion WebUI或者ComfyUI。它们功能强大,但背后依赖的是Python、PyTorch这一整套庞大的生态。启动慢、内存占用高、环境配置…

2026/7/14 6:25:29 阅读更多 →
可白嫖源码---课程设计--毕业设计--21926品牌车衣供应商直播带货及线下店管理系统(案例分析)-附源码

可白嫖源码---课程设计--毕业设计--21926品牌车衣供应商直播带货及线下店管理系统(案例分析)-附源码

本文仅展示核心实现逻辑与部分代码片段,完整项目源码、配套文档、数据库脚本内容较多,篇幅有限无法全部放出。 有需要完整资源的同学,可以在评论区留言【资料或领源码】,我会一 一回复站内私信,发送完整文件 目录 摘 …

2026/7/14 6:23:29 阅读更多 →

最新新闻

Ubuntu下qpOASES二次规划库安装与C++项目集成实战

Ubuntu下qpOASES二次规划库安装与C++项目集成实战

1. 项目概述:为什么我们需要 qpOASES?如果你在 Ubuntu 上搞机器人控制、轨迹优化、模型预测控制,或者任何需要在线求解带约束优化问题的 C 项目,那你大概率绕不开“二次规划”这个坎。简单说,二次规划就是在一堆线性等…

2026/7/14 7:55:55 阅读更多 →
MATLAB Robotics Toolbox:从建模到轨迹规划的六轴机械臂全流程实战

MATLAB Robotics Toolbox:从建模到轨迹规划的六轴机械臂全流程实战

1. 六轴机械臂与MATLAB Robotics Toolbox基础第一次接触工业机械臂时,我被它精准的运动轨迹所震撼。六轴机械臂作为工业自动化领域的"多面手",其每个关节的协同运动背后,是复杂的数学建模和算法支撑。而MATLAB Robotics Toolbox就像…

2026/7/14 7:55:54 阅读更多 →
JavaQuestPlayer:跨平台QSP游戏开发与运行的全面解决方案

JavaQuestPlayer:跨平台QSP游戏开发与运行的全面解决方案

JavaQuestPlayer:跨平台QSP游戏开发与运行的全面解决方案 【免费下载链接】JavaQuestPlayer 项目地址: https://gitcode.com/gh_mirrors/ja/JavaQuestPlayer JavaQuestPlayer是一款基于JavaSE的QSP游戏开发与运行平台,为游戏开发者和玩家提供了一…

2026/7/14 7:55:54 阅读更多 →
DLSS Swapper终极指南:5分钟掌握游戏性能调优神器

DLSS Swapper终极指南:5分钟掌握游戏性能调优神器

DLSS Swapper终极指南:5分钟掌握游戏性能调优神器 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾经因为游戏帧率不稳定而烦恼?是否遇到过新DLSS版本在某些游戏中表现不佳,却…

2026/7/14 7:53:53 阅读更多 →
Palworld存档编辑工具:从神秘二进制到可读JSON的魔法转换

Palworld存档编辑工具:从神秘二进制到可读JSON的魔法转换

Palworld存档编辑工具:从神秘二进制到可读JSON的魔法转换 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经好奇《幻兽帕鲁》…

2026/7/14 7:53:53 阅读更多 →
面向多智能体系统的统一认知协议栈设计与实现——以WSaiOS为例

面向多智能体系统的统一认知协议栈设计与实现——以WSaiOS为例

面向多智能体系统的统一认知协议栈设计与实现——以WSaiOS为例作者:东塬一老翁摘要: 随着人工智能从单一模型向多智能体协作系统演进,异构模块间的通信割裂与语义不一致问题成为制约系统可扩展性与鲁棒性的关键瓶颈。本文提出并定义了一种面向AI操作系统…

2026/7/14 7:51:53 阅读更多 →

日新闻

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

更多请点击: https://kaifayun.com 第一章:AI Agent数据越界行为的合规性挑战与溯源必要性 AI Agent在自主执行任务过程中,可能因提示注入、上下文污染或权限配置缺陷,无意或有意访问、缓存、传输受保护数据(如PII、G…

2026/7/14 0:01:13 阅读更多 →
Perplexity vs ChatGPT vs Claude:实测127组复杂查询任务,谁才是真正可靠的“事实型AI助手”?

Perplexity vs ChatGPT vs Claude:实测127组复杂查询任务,谁才是真正可靠的“事实型AI助手”?

更多请点击: https://codechina.net 第一章:Perplexity 怎么用 Perplexity 是衡量语言模型预测能力的核心指标,数值越低表示模型对文本序列的不确定性越小、预测越精准。它本质上是交叉熵损失的指数形式,计算公式为:…

2026/7/14 0:01:13 阅读更多 →
全球首发!五一视界定制物理AI卫星ECS-1剑指万亿赛道

全球首发!五一视界定制物理AI卫星ECS-1剑指万亿赛道

五一视界发布公告,近日,公司与环天智慧科技股份有限公司(“环天智慧”)正式达成空天领域战略合作。环天智慧是国内领先、聚焦天基对地观测遥感卫星总体研制与在轨运营的商业航天企业,同时也是西南地区规模最大、具备全自主可控遥感卫星星座建…

2026/7/14 0:03:13 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/13 4:38:36 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/13 4:38:38 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/14 7:15:24 阅读更多 →

月新闻