public static void Main(string[] args) { Employee CEO = new Employee("John", "CEO", 1000000); Employee headSales = new Employee("Sarah", "Head Sales", 200000); Employee headMarketing = new Employee("Carlos", "Head Marketing", 200000); Employee clerk1 = new Employee("Laura", "Marketing", 60000); Employee clerk2 = new Employee("Bob", "Marketing", 60000); Employee salesExecutive1 = new Employee("Richard", "Sales", 55000); Employee salesExecutive2 = new Employee("Elizabeth", "Sales", 55000); CEO.add(headMarketing); CEO.add(headSales); headMarketing.add(clerk1); headMarketing.add(clerk2); headSales.add(salesExecutive1); headSales.add(salesExecutive2); Console.WriteLine(CEO.ToString()); foreach (Employee headEmployee in CEO.getSubordinates()) { Console.WriteLine("\n"); Console.WriteLine(headEmployee.ToString()); foreach (Employee employee in headEmployee.getSubordinates()) { Console.WriteLine(employee.ToString()); } } Console.ReadLine(); }
//https://www.tutorialspoint.com/design_pattern/composite_pattern.htm static void Main(string[] args) { Employee CEO = new Employee("John", "CEO", 30000); Employee headSales = new Employee("Robert", "Head Sales", 20000); Employee headMarketing = new Employee("Michel", "Head Marketing", 20000); Employee clerk1 = new Employee("Laura", "Marketing", 10000); Employee clerk2 = new Employee("Bob", "Marketing", 10000); Employee salesExecutive1 = new Employee("Richard", "Sales", 10000); Employee salesExecutive2 = new Employee("Rob", "Sales", 10000); CEO.add(headSales); CEO.add(headMarketing); headSales.add(salesExecutive1); headSales.add(salesExecutive2); headMarketing.add(clerk1); headMarketing.add(clerk2); Console.WriteLine(CEO); foreach (var headEmployee in CEO.subordinates) { Console.WriteLine(headEmployee); foreach (var employee in headEmployee.subordinates) { Console.WriteLine(employee); } } }
public static void Main(String[] args) { Employee CEO = new Employee("John", "CEO", 30000); Employee headSales = new Employee("Robert", "Head Sales", 20000); Employee headMarketing = new Employee("Michel", "Head Marketing", 20000); Employee clerk1 = new Employee("Laura", "Marketing", 10000); Employee clerk2 = new Employee("Bob", "Marketing", 10000); Employee salesExecutive1 = new Employee("Richard", "Sales", 10000); Employee salesExecutive2 = new Employee("Rob", "Sales", 10000); CEO.add(headSales); CEO.add(headMarketing); headSales.add(salesExecutive1); headSales.add(salesExecutive2); headMarketing.add(clerk1); headMarketing.add(clerk2); //print all employees of the organization Console.WriteLine(CEO); foreach (Employee headEmployee in CEO.getSubordinates()) { Console.WriteLine(headEmployee); foreach (Employee employee in headEmployee.getSubordinates()) { Console.WriteLine(employee); } } Console.ReadKey(); }