/// <summary> /// Entry point into console application. /// </summary> static void Main() { // Create a tree structure Composite root = new Composite("root"); root.Add(new Leaf("Leaf A")); root.Add(new Leaf("Leaf B")); Composite comp = new Composite("Composite X"); comp.Add(new Leaf("Leaf XA")); comp.Add(new Leaf("Leaf XB")); root.Add(comp); root.Add(new Leaf("Leaf C")); // Add and remove a leaf Leaf leaf = new Leaf("Leaf D"); root.Add(leaf); root.Remove(leaf); // Recursively display tree root.Display(1); // Wait for user Console.ReadKey(); }
static void Main(string[] args) { var tree = new Composite(); var branch1 = new Composite(); var branch1Child1 = new Leaf(); var branch1Child2 = new Leaf(); branch1.Add(branch1Child1); branch1.Add(branch1Child2); tree.Add(branch1); }
static void Main(string[] args) { Component root = new Composite("Root"); Component branch1 = new Composite("Branch 1"); Component branch2 = new Composite("Branch2"); Component leaf1 = new Leaf("Leaf 1"); Component leaf2 = new Leaf("Leaf 2"); root.Add(branch1); root.Add(branch2); branch1.Add(leaf1); branch2.Add(leaf2); root.Operation(); }
static void Main(string[] args) { Component component = new Composite("Root"); Component subcomponent = new Composite("Sub"); Component leaf1 = new Composite("Leaf1"); Component leaf2 = new Composite("Leaf2"); component.Add(subcomponent); subcomponent.Add(leaf1); subcomponent.Add(leaf2); component.Operation(); Console.ReadLine(); }
static void Main(string[] args) { Title.UpperIndent(Assembly.GetExecutingAssembly()); IComponent n1 = new ConcreteNode1(); IComponent n2 = new ConcreteNode2(); IComponent n3 = new ConcreteNode3(); IComponent n4 = new ConcreteNode3(); IComponent composite1 = new Composite(); composite1.Add(n1); composite1.Add(n2); composite1.Add(n3); composite1.Add(n4); IComponent composite2 = new Composite(); composite2.Add(n4); composite2.Add(n1); IComponent composite3 = new Composite(); composite3.Add(new ConcreteNode1()); composite3.Add(new ConcreteNode1()); composite3.Add(new ConcreteNode1()); composite3.Add(new ConcreteNode1()); composite2.Add(composite3); IComponent composite4 = new Composite(); composite4.Add(new ConcreteNode3()); composite4.Add(new ConcreteNode3()); composite4.Add(new ConcreteNode3()); composite4.Add(new ConcreteNode3()); composite4.Add(new ConcreteNode3()); composite4.Add(new ConcreteNode3()); composite4.Add(new ConcreteNode3()); composite4.Add(new ConcreteNode3()); composite3.Add(composite4); composite1.Add(composite2); composite1.Option(); System.Console.WriteLine(new string('_', 50)); foreach (var item in composite1) { System.Console.WriteLine(item.GetType().Name); } Title.BottonIndent(); }
static void Main(string[] args) { Client client = new Client(); Leaf leaf = new Leaf(); Console.WriteLine("Client: I get a simple component:"); client.ClientCode(leaf); Composite tree = new Composite(); Composite branch1 = new Composite(); branch1.Add(new Leaf()); branch1.Add(new Leaf()); Composite branch2 = new Composite(); branch2.Add(new Leaf()); tree.Add(branch1); tree.Add(branch2); Console.WriteLine("Client: Now I've got a composite tree:"); client.ClientCode(tree); Console.Write("Client: I don't need to checkt the component classes even when managing the tree:\n"); client.ClientCode2(tree, leaf); }
static void Main(string[] args) { Composite root = new Composite("root"); root.Add(new Leaf("leafA")); Composite compositeX = new Composite("compositeX"); compositeX.Add(new Leaf("leafXA")); compositeX.Add(new Leaf("leafXB")); Composite compositeY = new Composite("compositeY"); compositeY.Add(new Leaf("leafYA")); root.Add(compositeX); root.Add(compositeY); Console.WriteLine("the root tree is"); root.Display(2); root.Remove(compositeX); Console.WriteLine("after remove compositeX"); root.Display(2); }
static void Main(string[] args) { Client client = new Client(); //This way the client code can support the simple leaf components... Leaf leaf = new Leaf(); Console.WriteLine("Client: I get a simple component:"); client.ClientCode(leaf); //...as well as the complex composites. Composite tree = new Composite(); Component branch1 = new Composite(); branch1.Add(new Leaf()); branch1.Add(new Leaf()); Composite branch2 = new Composite(); branch2.Add(new Leaf()); tree.Add(branch1); tree.Add(branch2); Console.WriteLine("Client: Now I've got a composite tree:"); client.ClientCode(tree); Console.WriteLine("Client: I don't need to check the components classes even when managing the tree:\n"); client.ClientCode2(tree, leaf); }
static void Main(string[] args) { // Create the root component Component component = new Composite("root"); Component a = new Composite("A"); Component b = new Composite("B"); Component c = new Composite("C"); // Add into the root component component.Add(a); component.Add(b); component.Add(c); Component xa = new Composite("XA"); Component xb = new Composite("XB"); Component xc = new Composite("XC"); a.Add(xa); b.Add(xb); c.Add(xc); Component leafxa = new Leaf("XA-Leaf"); xa.Add(leafxa); component.Display(1); Console.ReadLine(); }
static void Main(string[] args) { var client = new Client(); var leaf = new Leaf(); var branch1 = new Composite(); branch1.Add(new Leaf()); branch1.Add(new Leaf()); var branch2 = new Composite(); branch2.Add(new Leaf()); var tree = new Composite(); tree.Add(branch1); tree.Add(branch2); Console.WriteLine("Client. Get Leaf:"); client.ClientCode(leaf); Console.WriteLine("Client. Get Composite (tree):"); client.ClientCode(tree); Console.WriteLine("Client. Get Composite (tree) and Leaf:"); client.ClientCode2(tree, leaf); }
static public void Main() { //创建根节点,并加入两个叶节点 Composite root = new Composite("root"); root.Add(new Leaf("LeafA")); root.Add(new Leaf("LeafB")); //创建带有叶节点的枝节点,最后加入根节点 Composite compX = new Composite("CompositeX"); compX.Add(new Leaf("LeafC")); compX.Add(new Leaf("LeafD")); compX.Add(new Leaf("LeafE")); compX.Remove((Leaf)compX.GetChild(1)); root.Add(compX); //创建更深层的带有叶节点的枝节点,最后加入根节点 Composite compY = new Composite("CompositeY"); Composite compZ = new Composite("CompositeZ"); compX.Add(compY); compY.Add(compZ); compZ.Add(new Leaf("LeafF")); //递归显示 root.RecurveShow(); }
static void Main(string[] args) { Client client = new Client(); // Таким образом, клиентский код может поддерживать простые // компоненты-листья... Leaf leaf = new Leaf(); //Console.WriteLine("Client: I get a simple component:"); //client.ClientCode(leaf); // ...а также сложные контейнеры. Composite tree = new Composite(); Composite branch1 = new Composite(); branch1.Add(new Leaf()); branch1.Add(new Leaf()); Composite branch2 = new Composite(); branch2.Add(new Leaf()); Composite branch3 = new Composite(); branch3.Add(new Leaf()); tree.Add(branch1); tree.Add(branch2); tree.Add(branch3); //Console.WriteLine("Client: Now I've got a composite tree:"); //client.ClientCode(tree); Console.Write("Client: I don't need to check the components classes even when managing the tree:\n"); client.ClientCode2(tree, leaf); }
static void Main(string[] args) { Component branch_00 = new Composite("root"); Component branch_01 = new Composite("branch_02"); Component branch_02 = new Composite("branch_03"); Component node_00 = new Leaf("node_00"); Component node_01 = new Leaf("node_00"); branch_00.Add(branch_01); branch_00.Add(branch_02); branch_01.Add(node_00); branch_02.Add(node_01); branch_00.Operation(); Console.ReadLine(); }
static void Main() { Component root = new Composite("ROOT"); Component branch1 = new Composite("BR1"); Component branch2 = new Composite("BR2"); Component leaf1 = new Leaf("L1"); Component leaf2 = new Leaf("L2"); root.Add(branch1); root.Add(branch2); branch1.Add(leaf1); branch2.Add(leaf2); root.Operation(); branch2.GetChild(0).Operation(); }
static void Main(string[] args) { Composite composite = new Composite("First"); composite.Add(new Composite("Second")); composite.Add(new Composite("Third")); Composite composite1 = new Composite("Forth"); composite1.Add(new Composite("Fifth")); composite1.Add(new Composite("Sixth")); composite.Add(composite1); composite.DisplayAll(); Console.ReadKey(); }
private static void Main() { var root = new Composite("Root"); root.Add(new Leaf("Leaf A")); root.Add(new Leaf("Leaf B")); root.Add(new Leaf("Leaf C")); var branch = new Composite("Branch"); branch.Add(new Leaf("Leaf D")); branch.Add(new Leaf("Leaf E")); root.Add(branch); root.Show(0); Console.ReadKey(); }
static void Main(string[] args) { Component components = new Composite("root"); components.Add(new Leaf("FIRST")); Component second = new Composite("SECOND"); Component second1 = new Composite("SECOND 1"); Component second2 = new Composite("SECOND 2"); second2.Add(new Leaf("SECOND 3")); second1.Add(second2); second.Add(second1); components.Add(second); components.Add(new Leaf("THIRD")); components.Add(second1); components.Add(second2); components.Display(0); Console.ReadKey(); }
static void Main(string[] args) { Composite root = new Composite("root"); root.Add(new Leaf("Leaf A")); root.Add(new Leaf("Leaf B")); Composite comp = new Composite("Composite X"); comp.Add(new Leaf("Leaf XA")); comp.Add(new Leaf("Leaf XB")); root.Add(comp); root.Add(new Leaf("Leaf C")); Leaf leaf = new Leaf("Leaf D"); root.Add(leaf); root.Remove(leaf); root.Display(1); Console.ReadKey(); }
static void Main() { Composite system = new Composite("System"); system.Add(new Leaf("System.Element 1")); system.Add(new Leaf("System.Element 2")); Composite subsystem1 = new Composite("System.Subsystem1"); subsystem1.Add(new Leaf("System.Subsystem1.Element1")); subsystem1.Add(new Leaf("System.Subsystem1.Element2")); system.Add(subsystem1); system.Add(new Leaf("System.Element 3")); Leaf leaf = new Leaf("System.Element 4"); system.Add(leaf); system.Remove(leaf); system.Display(1); Console.ReadKey(); }
static void Main(string[] args) { Client client = new Client(); Console.WriteLine("Client: 把諸多派對元件組合成成一棵樹\n"); Composite tree = new Composite("生日趴活動"); Composite branch1 = new Composite("活動進行組"); branch1.Add(new Leaf("DJ 放歌")); branch1.Add(new Leaf("調酒師調酒")); branch1.Add(new Leaf("廚師端蛋糕進場")); Composite branch2 = new Composite("活動紀錄組"); branch2.Add(new Leaf("攝影師拍活動照片")); tree.Add(branch1); tree.Add(branch2); client.Display(tree); Console.WriteLine("Client: 添加元件調整樹 (不需要確認原先元件的類別)\n"); client.AddComponent(tree, new Leaf("趴踢工作人員資料紀錄")); }
static void Main(string[] args) { // Create a tree structure Composite root = new Composite("root"); root.Add(new Leaf("Leaf A")); root.Add(new Leaf("Leaf B")); Composite comp = new Composite("Composite X"); comp.Add(new Leaf("Leaf XA")); comp.Add(new Leaf("Leaf XB")); root.Add(comp); root.Add(new Leaf("Leaf C")); // Add and remove a leaf Leaf leaf = new Leaf("Leaf D"); root.Add(leaf); root.Remove(leaf); // Recursively display tree root.Display(1); // Wait for user Console.ReadKey(); }
static void Main(string[] args) { //permite criar uma hierarqia de objetos Composite raiz = new Composite("raiz"); raiz.Add(new Folha("Folha 1")); raiz.Add(new Folha("Folha 2")); Composite comp = new Composite("Composite X"); comp.Add(new Folha("Folha A1")); comp.Add(new Folha("Folha A2")); raiz.Add(comp); raiz.Add(new Folha("Folha B1")); Folha folha = new Folha("Folha D1"); raiz.Add(folha); // raiz.Remover(folha); raiz.Mostrar(2); }
public static void Run() { Console.WriteLine("\n Composite structural practice"); Composite root1 = new Composite("root"); root1.Add(new Leaf("Leaaf A")); root1.Add(new Leaf("Leaf B")); Composite comp1 = new Composite("Composite X"); comp1.Add(new Leaf("Leaf XA")); comp1.Add(new Leaf("Leaf XB")); root1.Add(comp1); root1.Add(new Leaf("Leaf C")); Leaf leaf = new Leaf("Leaf D"); root1.Add(leaf); root1.Remove(leaf); root1.Display(1); }
static void Main(string[] args) { var root = new Composite("root"); var child1 = root.Add(new Composite("Child 1")); var child2 = root.Add(new Composite("Child 2")); var child3 = root.Add(new Composite("Child 3")); for (int i = 0; i < 10; i++) { ((Composite)child1).Add(new Leaf($"Child 1 Leaf {i:00}")); } for (int i = 0; i < 5; i++) { var c2Child = ((Composite)child1).Add(new Composite($"Child 2 Child {i:00}")); for (int j = 0; j < 10; j++) { ((Composite)c2Child).Add(new Leaf($"{c2Child.Name} Leaf {i:00}")); } } root.WriteAllNames(); }
static void Main(string[] args) { var leaf = new Leaf(10); Console.WriteLine($"Leaf value : {leaf.Operation()}"); var composite1 = new Composite(); composite1.Add(new Leaf(10)); composite1.Add(new Leaf(20)); composite1.Add(new Leaf(30)); Console.WriteLine($"Composite 1 value : {composite1.Operation()}"); var composite2 = new Composite(); composite2.Add(composite1); composite2.Add(new Leaf(10)); composite2.Add(new Leaf(20)); composite2.Add(new Leaf(30)); Console.WriteLine($"Composite 2 value : {composite2.Operation()}"); Console.ReadLine(); }
static void Main(string[] args) { Composite root = new Composite("ROOT"); root.Add(new Leaf("A")); root.Add(new Leaf("B")); Composite comp = new Composite("COMPOSITE X"); comp.Add(new Leaf("XA")); comp.Add(new Leaf("XB")); root.Add(comp); root.Add(new Leaf("C")); Leaf leaf = new Leaf("D"); root.Add(leaf); root.Remove(leaf); root.Show(1); Console.ReadKey(); }
private static void Main() { var root = new Composite("Root"); root.Add(new Leaf("Leaf A")); root.Add(new Leaf("Leaf B")); var comp = new Composite("Parent A"); comp.Add(new Leaf("Child A1")); comp.Add(new Leaf("Child A2")); root.Add(comp); root.Add(new Leaf("Leaf C")); var leaf = new Leaf("Leaf D"); root.Add(leaf); root.Remove(leaf); root.Display(1); Console.ReadKey(); }
static void Main(string[] args) { var root = new Composite("fileSystem"); var folder1 = new Composite("folder-1"); folder1.Add(new Primitive("file-1")); folder1.Add(new Primitive("file-2")); root.Add(folder1); var folder2 = new Composite("folder-2"); folder2.Add(new Primitive("file-3")); root.Add(folder2); root.Add(new Primitive("file-4")); root.Add(new Primitive("file-5")); root.Add(new Composite("folder-3")); root.Display(0); Console.ReadKey(); }
static void Main(string[] args) { var leaf1 = new Leaf("First leaf"); var leaf2 = new Leaf("Second leaf"); var leaf3 = new Leaf("Third leaf"); var leaf4 = new Leaf("Fourth leaf"); var leaf5 = new Leaf("Fifth leaf"); var composite1 = new Composite(); var composite2 = new Composite(); composite1.Add(leaf1); composite1.Add(leaf2); composite1.Add(leaf3); composite2.Add(leaf4); composite2.Add(leaf5); //composite 자기 자신도 추가할 수 있습니다. composite1.Add(composite2); Console.WriteLine("composite1.Operation() - three Leaf and one composite has two leaf"); composite1.Operation(); Console.WriteLine("composite2.Operation() - two leaf"); composite2.Operation(); }
static void Main(string[] args) { Client cli = new Client(); Leaf leaf = new Leaf(); Console.WriteLine("Client: I get a simple component: "); cli.ClientCode(leaf); //CRIAÇÃO DOS RAMOS E ARVORE Composite MainTree = new Composite(); Composite ramo1 = new Composite(); Composite ramo2 = new Composite(); //MANEIRA DE ADICONAR PELA CLASSE ramo1.Add(leaf); //CLIENTE NAO TEM DE SE PREOCUPAR A VERIFICAR OS COMPONENTES Console.WriteLine("Primeiro Ramo"); cli.AddComponentToComponent(ramo1, leaf); // ramo1.Add(leaf); Console.WriteLine("Segundo Ramo"); cli.AddComponentToComponent(ramo2, leaf); // ramo2.Add(leaf); Console.WriteLine("Arvore com 1 e 2 ramo"); cli.AddComponentToComponent(MainTree, ramo1); cli.AddComponentToComponent(MainTree, ramo2); // MainTree.Add(ramo1); // MainTree.Add(ramo2); Console.WriteLine("Client: Now I've got a composite tree:"); cli.ClientCode(MainTree); Console.Write("Client: I don't need to check the components classes even when managing the tree:\n"); cli.AddComponentToComponent(MainTree, leaf); Console.ReadLine(); }
static void Main(string[] args) { ConcreteCompany companyRoot = new ConcreteCompany("北京總公司"); companyRoot.Add(new HRDepartment("總公司人力資源部")); companyRoot.Add(new FinanceDepartment("總公司財務部")); ConcreteCompany companyA = new ConcreteCompany("上海華東分公司"); companyA.Add(new HRDepartment("華東分公司人力資源部")); companyA.Add(new FinanceDepartment("華東分公司財務部")); companyRoot.Add(companyA); ConcreteCompany companyB = new ConcreteCompany("南京辦事處"); companyB.Add(new HRDepartment("南京辦事處人力資源部")); companyB.Add(new FinanceDepartment("南京辦事處財務部")); companyA.Add(companyB); ConcreteCompany companyC = new ConcreteCompany("杭州辦事處"); companyC.Add(new HRDepartment("杭州辦事處人力資源部")); companyC.Add(new FinanceDepartment("杭州辦事處財務部")); companyA.Add(companyC); Console.WriteLine("組織結構圖"); companyRoot.Display(1); Console.WriteLine("\n職責"); companyRoot.LineOfDuty(); Console.WriteLine("\n"); Composite root = new Composite("root"); root.Add(new Leaf("Leaf A")); root.Add(new Leaf("Leaf B")); Composite comp = new Composite("Composite X"); comp.Add(new Leaf("Leaf XA")); comp.Add(new Leaf("Leaf XB")); root.Add(comp); Composite comp2 = new Composite("Composite XY"); comp2.Add(new Leaf("Leaf XYA")); comp2.Add(new Leaf("Leaf XYB")); comp.Add(comp2); root.Add(new Leaf("Leaf C")); Leaf leafD = new Leaf("Leaf D"); root.Add(leafD); root.Remove(leafD); root.Display(1); Console.ReadLine(); }
public static void Main(string[] args) { //US1 var root = new Composite(); root.Add(new Leaf(3)); root.Add(new Leaf(5)); Console.WriteLine("US1:" + root.Horas()); //US2 var comp = new Composite(); comp.Add(new Leaf(2)); comp.Add(new Leaf(5)); //Console.WriteLine("comp"); Console.WriteLine("US2:" + comp.Horas()); //F1 var feature1 = new Composite(); feature1.Add(root); feature1.Add(comp); Console.WriteLine("feature1:" + feature1.Horas()); //Epic 1 var epic = new Composite(); epic.Add(feature1); Console.WriteLine("epic:" + epic.Horas()); //U3 var US3 = new Composite(); US3.Add(new Leaf(2)); US3.Add(new Leaf(9)); Console.WriteLine("US3:" + US3.Horas()); var US4 = new Composite(); US4.Add(new Leaf(1)); US4.Add(new Leaf(4)); US4.Add(new Leaf(4)); Console.WriteLine("US4:" + US4.Horas()); //F2 var feature2 = new Composite(); feature2.Add(US3); Console.WriteLine("feature2:" + feature2.Horas()); //F3 var feature3 = new Composite(); feature3.Add(US4); Console.WriteLine("feature3:" + feature3.Horas()); //Epic 2 var epic2 = new Composite(); epic2.Add(feature2); epic2.Add(feature3); Console.WriteLine("epic2:" + epic2.Horas()); //// Wait for user Console.ReadKey(); }