using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Composite { internal class Composite : Component { protected List _children = new List(); public override void Add(Component component) { _children.Add(component); } public override void Remove(Component component) { _children.Remove(component); } public override string Operation() { int i = 0; StringBuilder sb = new StringBuilder(); sb.Append("Branch("); foreach (Component component in _children) { sb.Append(component.Operation()); if (i != _children.Count - 1) sb.Append("+"); i++; } sb.Append(")"); return sb.ToString(); } } }