public override void ProcessProblem(Problem problem) { if (problem.Level != ResponsiableLevel.Low) { Console.WriteLine("This is {0}. I am a Developer of this Company.I am not able to solve your problem. " + "Our Team Lead {1} will review your problem", this.Name, Boss.Name); Console.WriteLine(); Boss.ProcessProblem(problem); } else { Console.WriteLine("This is {0}. I am a developer of this Company. Your problem has been solved!", this.Name); Console.WriteLine(); } }
static void Main(string[] args) { //create a developer Developer developer = new Developer(); developer.Name = "John"; //create a TeamLead TeamLead teamLead = new TeamLead(); teamLead.Name = "Jack"; //This is Resposiable Chain developer.Boss = teamLead; //create a problem that can be handled by developer. Problem Problemfirst = new Problem(); Problemfirst.Description = "Here must be problem that can solve a developer"; Problemfirst.Level = ResponsiableLevel.Low; Console.WriteLine("Problem Info: " + Problemfirst.Description); Console.WriteLine(); //send problem developer.ProcessProblem(Problemfirst); Console.WriteLine(); //create a problem that can be handled by TeamLead. Problem Problemsecond = new Problem(); Problemsecond.Description = "Here must be problem that can solve a TeamLead"; Problemsecond.Level = ResponsiableLevel.High; Console.WriteLine("Request Info: " + Problemsecond.Description); Console.WriteLine(); //send problem developer.ProcessProblem(Problemsecond); }
public override void ProcessProblem(Problem problem) { Console.WriteLine("This is {0}. I am a Team Lead of this Company. Your problem has been solved!", this.Name); Console.WriteLine(); }
public abstract void ProcessProblem(Problem problem);