Esempio n. 1
0
        private static void Main(string[] args)
        {
            Console.WriteLine("======= Demonstration of Composite =======");
            // make the root of my hard disk
            IComponent root = new Folder("Root");
            // create some folder in a hierarchy
            // root
            //   --- a
            //       --- b
            //   --- c
            IComponent folderA = new Folder("FolderA");

            root.AddComponent(folderA);

            IComponent folderB = new Folder("FolderB");

            folderA.AddComponent(folderB);

            IComponent folderC = new Folder("FolderC");

            root.AddComponent(folderC);

            // add some 'files' to the a folder
            IComponent fileX = new File("FileX", 1000);
            IComponent fileY = new File("FileY", 3000);
            IComponent fileZ = new File("FileZ", 5000);

            folderA.AddComponent(fileX);
            folderA.AddComponent(fileY);
            folderA.AddComponent(fileZ);

            // add some 'files' to the b folder
            IComponent file1 = new File("File1", 30);
            IComponent file2 = new File("File2", 20);
            IComponent file3 = new File("File3", 10);

            folderB.AddComponent(file1);
            folderB.AddComponent(file2);
            folderB.AddComponent(file3);

            // leaf operation
            Console.WriteLine("File 1 has size " + file1.Size() +
                              " (Correct: 30)");
            // composite operation
            Console.WriteLine("Folder b has size " + folderB.Size() +
                              " (Correct: 60)");
            Console.WriteLine("Folder root has size " + root.Size() +
                              " (Correct: 9060)");

            Console.WriteLine("Printing the root folder/file structure:");
            root.Print(0);

            Console.WriteLine("Deleting root...");
            root.Delete();
            Console.WriteLine("Folder root has size " + root.Size() +
                              " (Correct: 0)");

            Console.ReadKey();
        }
        private static void Main(string[] args)
        {
            Console.WriteLine("======= Demonstration of Composite =======");
            // make the root of my hard disk
            IComponent root = new Folder("Root");
            // create some folder in a hierarchy
            // root
            //   --- a
            //       --- b
            //   --- c
            IComponent folderA = new Folder("FolderA");
            root.AddComponent(folderA);

            IComponent folderB = new Folder("FolderB");
            folderA.AddComponent(folderB);

            IComponent folderC = new Folder("FolderC");
            root.AddComponent(folderC);

            // add some 'files' to the a folder
            IComponent fileX = new File("FileX", 1000);
            IComponent fileY = new File("FileY",3000);
            IComponent fileZ = new File("FileZ",5000);

            folderA.AddComponent(fileX);
            folderA.AddComponent(fileY);
            folderA.AddComponent(fileZ);

            // add some 'files' to the b folder
            IComponent file1 = new File("File1",30);
            IComponent file2 = new File("File2",20);
            IComponent file3 = new File("File3",10);

            folderB.AddComponent(file1);
            folderB.AddComponent(file2);
            folderB.AddComponent(file3);

            // leaf operation
            Console.WriteLine("File 1 has size " + file1.Size() +
                              " (Correct: 30)");
            // composite operation
            Console.WriteLine("Folder b has size " + folderB.Size() +
                              " (Correct: 60)");
            Console.WriteLine("Folder root has size " + root.Size() +
                              " (Correct: 9060)");

            Console.WriteLine("Printing the root folder/file structure:");
            root.Print(0);

            Console.WriteLine("Deleting root...");
            root.Delete();
            Console.WriteLine("Folder root has size " + root.Size() +
                              " (Correct: 0)");

            Console.ReadKey();
        }
Esempio n. 3
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);
        }