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); }