static void Main(string[] args) { //针对抽象构件编程 AbstractFile file1, file2, file3, file4, file5, folder1, folder2, folder3, folder4; folder1 = new Folder("我的资料"); folder2 = new Folder("图像文件"); folder3 = new Folder("文本文件"); folder4 = new Folder("视频文件"); file1 = new ImageFile("小龙女.jpg "); file2 = new ImageFile("张无忌.gif "); file3 = new TextFile("九阴真经.txt "); file4 = new TextFile("葵花宝典.doc "); file5 = new VideoFile("神雕侠侣.rmvb"); folder2.Add(file1); folder2.Add(file2); folder3.Add(file3); folder3.Add(file4); folder4.Add(file5); folder1.Add(folder2); folder1.Add(folder3); folder1.Add(folder4); //从“我的资料”节点开始进行杀毒操作 folder1.KillVirus(); Console.Read(); }
static void Main(string[] args) { AbstractFile file1, file2, file3, file4, file5, folder1, folder2, folder3, folder4; folder1 = new Folder("my file"); folder2 = new Folder("image"); folder3 = new Folder("text"); folder4 = new Folder("vidoe"); file1 = new ImageFile("a.jpg"); file2 = new ImageFile("b.gif"); file3 = new TextFile("c.txt"); file4 = new TextFile("d.doc"); file5 = new VidoeFile("e.mp4"); folder2.Add(file1); folder2.Add(file2); folder3.Add(file3); folder3.Add(file4); folder4.Add(file5); folder1.Add(folder2); folder1.Add(folder3); folder1.Add(folder4); folder1.KillVirus(); Console.ReadKey(true); }
static void Main(string[] args) { /* Файловая система — хороший пример древовидной структуры объектов. * Она представлена файлами и папками, при этом очевидно, что файл будет самой минимальной структурной единицей и не будет содержать подразделы. * При этом со всеми папками (в том числе вложенными) можно работать одинаково. Отличный вариант, чтобы реализовать паттерн Компоновщик. */ // Нам нужен общий интерфейс, описывающий все объекты нашей системы — файлы и папки. Создадим его: Component.cs // Теперь реализуем модель файла — наименьшей единицы нашей древовидной структуры. // У файла нет подкомпонентов, поэтому методы Add() и Remove() тут реализованы не будут: File.cs // Модель папки-структуры, которая может содержать дочерние элементы (файлы или подпапки): Folder.cs // Теперь посмотрим на саму реализацию в клиентском коде: // Создание корневой папки Component rootFolder = new Folder("Root"); // Создание файла - компонента низшего уровня Component myFile = new File("MyFile.txt"); // Создание папки с документами Folder documentsFolder = new Folder("MyDocuments"); // Добавляем файл в корневую папки rootFolder.Add(myFile); // Добавляем подпапку для документов в корневую папку rootFolder.Add(documentsFolder); // показываем контент корневой папки rootFolder.Display(); }
static void Main(string[] args) { AbstractFile folder1 = new Folder("EDC的资料"); AbstractFile folder2 = new Folder("图像文件"); AbstractFile folder3 = new Folder("文本文件"); AbstractFile folder4 = new Folder("视频文件"); AbstractFile image1 = new ImageFile("小龙女.jpg"); AbstractFile image2 = new ImageFile("张无忌.gif"); AbstractFile text1 = new TextFile("九阴真经.txt"); AbstractFile text2 = new TextFile("葵花宝典.doc"); AbstractFile video1 = new VideoFile("笑傲江湖.rmvb"); AbstractFile video2 = new VideoFile("天龙八部.mp4"); folder2.Add(image1); folder2.Add(image2); folder3.Add(text1); folder3.Add(text2); folder4.Add(video1); folder4.Add(video2); folder1.Add(folder2); folder1.Add(folder3); folder1.Add(folder4); folder1.KillVirus(); }
static void Main(string[] args) { var root = new Folder("Root"); root.Add(new Folder("Some Folder")); root.Add(new File("Some File")); var subFolder = new Folder("Another Folder"); subFolder.Add(new File("NewFile1")); subFolder.Add(new File("NewFile2")); root.Add(subFolder); root.Display(0); }
public static void Main() { var programFilesFolder = new Folder("Program Files"); var whoCrashedFolder = new Folder("WhoCrashed"); whoCrashedFolder.Add(new File("readme.txt")); whoCrashedFolder.Add(new File("rspCrash32.inf")); whoCrashedFolder.Add(new File("rspCrash32.sys")); whoCrashedFolder.Add(new File("rspCrash64.inf")); whoCrashedFolder.Add(new File("rspCrash64.sys")); whoCrashedFolder.Add(new File("rspSymSrv32.dll")); whoCrashedFolder.Add(new File("symsrv.dll")); whoCrashedFolder.Add(new File("unins000.dat")); whoCrashedFolder.Add(new File("unins000.exe")); whoCrashedFolder.Add(new File("WhoCrashed.exe")); whoCrashedFolder.Add(new File("WhoCrashed32.dll")); whoCrashedFolder.Add(new File("WhoCrashedEx.exe")); whoCrashedFolder.Add(new File("LICENSE.TXT")); programFilesFolder.Add(whoCrashedFolder); var versionFolder = new Folder("3.0"); var binFolder = new Folder("bin"); binFolder.Add(new File("mongod.exe")); binFolder.Add(new File("...")); versionFolder.Add(binFolder); versionFolder.Add(new File("GNU-AGPL-3.0")); versionFolder.Add(new File("README")); versionFolder.Add(new File("THIRD-PARTY-NOTICES")); var serverFolder = new Folder("Server"); serverFolder.Add(versionFolder); var mongoDbFolder = new Folder("MongoDB"); mongoDbFolder.Add(serverFolder); programFilesFolder.Add(mongoDbFolder); programFilesFolder.Print(0); }
static void Main(string[] args) { var root = new Folder("Root"); root.Add(new Folder("Empty Folder")); root.Add(new File("Empty File")); var subfolder = new Folder("Sub Folder"); root.Add(subfolder); var subsubfolder = new Folder("Sub Sub Folder"); subfolder.Add(subsubfolder); subsubfolder.Add(new File("Some Item")); subsubfolder.Add(new File("Another Item")); subsubfolder.Add(new File("And Another Item")); subsubfolder.Add(new Folder("Some Folder")); root.Draw(0); }
public static void Main() { File file1 = new File(5, "file1", DateTime.Now); File file2 = new File(5, "file2", DateTime.Now); File file3 = new File(5, "file3", DateTime.Now); Folder folder1 = new Folder("folder1", DateTime.Now, new List <IContainer>()); folder1.Add(file3); //user put 2 in 1 single folder List <IContainer> list = new List <IContainer>(new File[] { file2, file3 }); IContainer folder2 = new Folder("folder2", DateTime.Now, list); Console.WriteLine(folder2.GetTotalSize()); Console.ReadLine(); }