当前位置: 首页 > news >正文

【2013-12-17】设计模式学习笔记:组合模式

[历史归档]本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。
发布时间:2013-12-17| 标题:设计模式学习笔记:组合模式分类:编程 / 设计模式 / java |标签:设计模式·java·组合模式


设计模式学习笔记:组合模式

最近在看《设计模式之禅》这本书,收获良多,作者不愧是工作多年的大牛,将各种设计模式讲解的非常透彻。这里备份下书中的【 组合模式 】代码:

github:

【 https://github.com/cstriker1407/design_pattern 】

代码如下:

abstractclassCrop{privateStringname;privateList<Crop>cropList=newArrayList<Crop>();publicCrop(Stringname){super();this.name=name;}publicList<Crop>getCropList(){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(){return"LeafOper";}}classLeaderextendsCrop{publicLeader(Stringarg0){super(arg0);}@OverridepublicStringoper(){return"LeaderOper";}}

测试代码:

publicclassCompositeTest{publicstaticvoidtest(){LeaderA01=newLeader("A01");LeaderA11=newLeader("A11");LeaderA12=newLeader("A12");LeafB13=newLeaf("B13");A01.addCrop(A11).addCrop(A12).addCrop(B13);LeafB21=newLeaf("B21");LeafB22=newLeaf("B22");LeafB23=newLeaf("B23");A11.addCrop(B21);A12.addCrop(B22).addCrop(B23);A01.info();}}
http://www.jsqmd.com/news/1185511/

相关文章:

  • MySQL数据库 (十四) MySQL事务(上),事务的四大特性,事务的操作方式,事务的隔离级别
  • C++17 主要新特性 汇总
  • Qt C++项目集成MeloTTS.cpp:纯C++离线TTS引擎的完整实践指南
  • AI项目部署实战:从环境配置到性能优化的完整指南
  • 机器学习实战入门:从西瓜书习题到核心概念通关
  • 从图像统计特征看图像质量评估-均值,方差,对比度,熵
  • AssetRipper:Unity资源逆向提取与恢复的实战指南
  • Python实现RC4流加密算法:从原理到可视化实战
  • 手把手教你用Python调优随机森林模型
  • 遗传算法工程化实战:从N皇后到生产级GA代码设计
  • Unity WebGL部署Tomcat报错:一个勾选解决Gzip压缩冲突
  • 分布级奖励优化:解决视觉生成模型奖励黑客与模式坍塌问题
  • 华为OD机试“猜密码”题解:回溯算法实现与多语言避坑指南
  • C++面向对象之多态的实现和应用详解
  • AI编程时代,PPT已成为过去,单个HTML文件创造无限可能
  • 怎么用 Claude 做 excel 表格 避坑指南,AI 导出鸭解决表格乱码、格式丢失难题
  • Pandas多维聚合实战:用MultiIndex构建可导航数据拓扑
  • LLM大模型中的概率分形理论与优化实践
  • STM32驱动压电蜂鸣器方案与优化实践
  • 扩散模型从入门到实战:2小时掌握DDPM核心原理与PyTorch实现
  • 嘎嘎降AI工具:学术论文降AI率实战指南
  • YOLOv8实战:构建Apex游戏人物识别检测系统完整教程
  • 十二、任务管理
  • 【STM32HAL开发】学习笔记(3)——串口
  • RUST编程学习-碎片2-Unsafe
  • 2026 年通辽优秀的叉车出租订做厂家哪家强,别再自己买!效率翻倍的秘密工具解析 - 企业官方推荐【认证】
  • 【Unity3D】TrailRenderer进阶:从导弹尾焰到武器挥砍的实战特效
  • 基于YOLOv8的道路坑洼检测系统:从模型训练到PyQT5界面开发全流程
  • C++ HTTP客户端库cpr:现代化网络请求的实践指南
  • Windows平台微信QQ防撤回工具RevokeMsgPatcher原理与实战指南