组合模式 末蓝、 2021-09-16 23:58 368阅读 0赞 ## 11.组合模式 ## ![70][] //抽象构件,它是叶子和容器共同的父类,并且声明了叶子和容器的所有方法 abstract class AbstractFile { public abstract void Add(AbstractFile file);//新增文件 public abstract void Delete(AbstractFile file);//删除文件 public abstract AbstractFile GetChildFile(int i);//获取子构件(可以使文件,也可以是文件夹) public abstract void KillVirue();//对文件进行杀毒 } class Folder:AbstractFile//文件夹 { private List<AbstractFile> fileList = new List<AbstractFile>(); private string name; public Folder(string name) { this.name = name; } public string Name { get { return name; } set { name = value; } } public override void Add(AbstractFile file) { fileList.Add(file); } public override void Delete(AbstractFile file) { fileList.Remove(file); } public override AbstractFile GetChildFile(int i) { return fileList[i] as AbstractFile; } public override void KillVirue() { Console.WriteLine("对文件夹{0}进行杀毒",name); foreach (AbstractFile obj in fileList) { obj.KillVirue(); } } } class ImageFile:AbstractFile//图片文件 { private string name; public string Name { get { return name; } set { name = value; } } public ImageFile(string name) { this.name = name; } public override void Add(AbstractFile file) { Console.WriteLine("对不起,不支持该方法"); } public override void Delete(AbstractFile file) { Console.WriteLine("对不起,不支持该方法"); } public override AbstractFile GetChildFile(int i) { Console.WriteLine("对不起,不支持该方法"); return null; } public override void KillVirue() { //模拟杀毒 Console.WriteLine("已经对{0}进行了杀毒", name); } } class TextFile:AbstractFile//文本文件 { private string name; public string Name { get { return name; } set { name = value; } } public TextFile(string name) { this.name = name; } public override void Add(AbstractFile file) { Console.WriteLine("对不起,不支持该方法"); } public override void Delete(AbstractFile file) { Console.WriteLine("对不起,不支持该方法"); } public override AbstractFile GetChildFile(int i) { Console.WriteLine("对不起,不支持该方法"); return null; } public override void KillVirue() { //模拟杀毒 Console.WriteLine("已经对{0}进行了杀毒", name); } } class Program { static void Main(string[] args) { AbstractFile file1, file2, folder1,file3, folder2, folder3; folder1 = new Folder("我的视频"); folder2 = new Folder("我的图片"); folder3 = new Folder("我的资料"); file1 = new TextFile("文本1"); file2 = new ImageFile("图像2"); file3 = new TextFile("文本2"); folder1.Add(file1); folder2.Add(file2); folder2.Add(file3); folder2.KillVirue(); Console.ReadLine(); } } ![70 1][] [70]: /images/20210725/220ffa4f5d554b1d8526ae58acfdd972.png [70 1]: /images/20210725/a1bff2896c784dc98fad0a6bd813274a.png
相关 组合模式 在我写外观模式的时候,我是举最近在做的一个考勤的例子,不熟悉的小伙伴可以去看一下前面的文章哦,在那个例子中我们分析了一下,考勤中每种类别员工的工作日计算方式是不一样的,比如说一 川长思鸟来/ 2022年05月09日 15:00/ 0 赞/ 230 阅读
相关 组合模式 组合模式 一、概述 1. 组合模式为处理树形结构提供了完美的解决方案,描述了如何将容器和叶子进行递归组 合,使得用户在使用时可以一致性的对待容器和叶子。 2. 古城微笑少年丶/ 2022年04月18日 04:47/ 0 赞/ 210 阅读
相关 组合模式 > 本文总结摘自刘伟老师的《设计模式》和程杰老师的《大话设计模式》 1.定义 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个 朴灿烈づ我的快乐病毒、/ 2022年01月23日 00:21/ 0 赞/ 253 阅读
相关 组合模式 前言 组合模式(Composite),将对象组合树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 一、Compone 傷城~/ 2021年12月09日 00:49/ 0 赞/ 296 阅读
相关 组合模式 树形结构在软件中十分常见,如操作系统中的文件结构,文件夹包含文件和子文件夹,而子文件夹又包含文件和子子文件夹,像这样的结构称为树形结构。在树形结构中,文件夹或子文件夹称为容器( 清疚/ 2021年11月04日 16:10/ 0 赞/ 365 阅读
相关 组合模式 用途 -------------------- 组合模式 (Component) 将对象组合成 树形结构以表示“部分-整体”的层次结构。 组合模式使得用户对单个对象和 以你之姓@/ 2021年09月26日 15:50/ 0 赞/ 286 阅读
相关 组合模式 组合模式:将对象组合成树形结构以表示‘部分-整体’的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 透明方式:就是在component中声明所有用来管理子对 r囧r小猫/ 2021年09月17日 03:18/ 0 赞/ 430 阅读
相关 组合模式 11.组合模式 ![70][] //抽象构件,它是叶子和容器共同的父类,并且声明了叶子和容器的所有方法 abstract class Abstr 末蓝、/ 2021年09月16日 23:58/ 0 赞/ 369 阅读
相关 组合模式 一 概述 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nL 你的名字/ 2021年07月24日 17:14/ 0 赞/ 546 阅读
相关 组合模式 合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类... 小灰灰/ 2020年06月13日 05:57/ 0 赞/ 805 阅读
还没有评论,来说两句吧...