组合模式就是 处理树结构的,

树结构 分为容器节点(有孩子节点的)和叶子节点(末端节点)

组合模式可以统一处理 容器节点 和叶子节点; 他拥有天然的递归系统

上代码:

package composite;import java.util.ArrayList;
import java.util.List;public interface AbstractFile {void killVirus();
}class ImgFile implements AbstractFile{private String name;@Overridepublic void killVirus() {// TODO Auto-generated method stubSystem.out.println( this.name +"图片已杀毒");}public ImgFile(String name) {super();this.name = name;}}
class TextFile implements AbstractFile{private String name;@Overridepublic void killVirus() {// TODO Auto-generated method stubSystem.out.println( this.name +"文章已杀毒");}public TextFile(String name) {super();this.name = name;}}
class Folder implements AbstractFile{private String name;private List<AbstractFile> list= new ArrayList<AbstractFile>();public Folder(String name) {super();this.name = name;}@Overridepublic void killVirus() {// TODO Auto-generated method stubSystem.out.println( this.name +"文件夹已杀毒");for (AbstractFile abstractFile : list) {abstractFile.killVirus();}}public void add(AbstractFile a) {this.list.add(a);}public void remove(AbstractFile a) {this.list.remove(a);}public void getFile(int i) {this.list.get(i);}}// 调用
package composite;public class Client {public static void main(String[] args) {Folder f1 = new Folder("我的收藏");Folder f2 = new Folder("我的照片");Folder f3 = new Folder("我的文章");AbstractFile img = new ImgFile("leon");AbstractFile text1 = new TextFile("生化危机1-恶化");AbstractFile text2 = new TextFile("生化危机终章-进化");f2.add(img);f3.add(text1);f3.add(text2);f1.add(f2);f1.add(f3);f1.killVirus();}
}

GOF23 设计模式 之组合模式相关推荐

  1. 每天一个设计模式之组合模式

    作者按:<每天一个设计模式>旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现.诚然,每种设计模式都有多种实现方式,但此小册只记录最直截了当的实现方式 :) ...

  2. 1、【设计模式】组合模式

    java设计模式之组合模式 [学习难度:★★★☆☆,使用频率:★★★★☆]  树形结构在软件中随处可见,例如操作系统中的目录结构.应用软件中的菜单.办公系统中的公司组织结构等等,如何运用面向对象的方式 ...

  3. 【GOF23设计模式】原型模式

    [GOF23设计模式]原型模式 来源:http://www.bjsxt.com/  一.[GOF23设计模式]_原型模式.prototype.浅复制.深复制.Cloneable接口  浅复制 1 pa ...

  4. 【GOF23设计模式】迭代器模式

    [GOF23设计模式]迭代器模式 来源:http://www.bjsxt.com/  一.[GOF23设计模式]_迭代器模式.JDK内置迭代器.内部类迭代器 1 package com.test.it ...

  5. 详解设计模式:组合模式

    组合模式(Composite Pattern),又叫部分整体模式,是 GoF 的 23 种设计模式中的一种结构型设计模式. 组合模式 是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组 ...

  6. 结构型设计模式之组合模式

    结构型设计模式之组合模式 组合模式 应用场景 优缺点 主要角色 组合模式结构 分类 透明组合模式 创建抽象根节点 创建树枝节点 创建叶子节点 客户端调用 安全组合模式 创建抽象根节点 创建树枝节点 创 ...

  7. java设计模式之组合模式(树形层级)

    java设计模式之组合模式 学习难度:★★★☆☆,使用频率:★★★★☆]  树形结构在软件中随处可见,例如操作系统中的目录结构.应用软件中的菜单.办公系统中的公司组织结构等等,如何运用面向对象的方式来 ...

  8. Java设计模式之组合模式详解

    文章目录 详解Java设计模式之组合模式 案例引入 组合模式 定义 模式类图结构 相关角色 典型代码 案例分析 类图设计 实例代码 结果分析 JavaJDK中的组合模式 透明组合模式 安全组合模式 组 ...

  9. Java设计模式之组合模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

最新文章

  1. EasyPusher实现Android手机屏幕桌面直播,实时推送操作画面,用于手游直播等应用
  2. k8s-ingress 413 Request Entity Too Large
  3. ca 自建 颁发证书_openssl自建CA后颁发证书
  4. zookeeper安装教程(zookeeper3.4.5为例)
  5. html 标签 r语言,从R中的字符串中删除html标签
  6. Wallpaper:基于Typecho的壁纸头像站主题
  7. MySQL之View(视图)
  8. 【编程思想】什么是微服务
  9. 清除B/S开发时页面缓存
  10. java 发送邮件(带附件)
  11. 2021-05-30
  12. 全球40个免费电子图书馆网址~收藏
  13. 【Web前端笔记-基础】第四课·初识 HTML,标签学习2
  14. ts 报错:‘new‘ expression, whose target lacks a construct signature, implicitly has an ‘any‘ type.
  15. 系统分析员应具备的能力
  16. 风口上的小游戏还有怎样的发展空间?7位腾讯技术专家为你解答
  17. 基于Python的飞机票销售系统的设计和实现
  18. 【Qt象棋游戏】08_人机博弈高阶算法
  19. Git 学会git,探索GitHub,掌握新知识 (二)
  20. Python之判断一个数是否为素数

热门文章

  1. typora 备份与恢复未保存的文章
  2. 海店湾:这个夏天度假会很爽,茶马古道上惊显现代养生度假地!
  3. PTGui Pro 12(全景图合成软件)官方中文版V12.0 | PTGui汉化版下载 | PTGUi官网下载
  4. 电子学:第014课——实验 15:防入侵报警器(第一部分)
  5. fishnet转poly序号变化
  6. html5声波效果动画,纯css制作声波扩散动画
  7. 在Windows中安装OpenCV-Python | 四
  8. 2022-4-11 Leetcode 435.无重叠区间 —— 【贪心算法】
  9. 操作系统实现——编写MBR
  10. SQL视图(转自http://www.cnblogs.com/fineboy/archive/2005/09/14/236731.html)