static void Main(string[] args)
        {
            var requirement = new Requirement();

            ProjectManager   manager   = new ProjectManager();
            SoftwareEngineer engineer  = new SoftwareEngineer();
            Architect        architect = new Architect();

            manager.GiveToNext(architect);
            architect.GiveToNext(engineer);

            manager.Handle(requirement);

            foreach (var task in requirement.WorkDoneBy)
            {
                Console.WriteLine(task);
            }

            Console.ReadKey();
        }
 public void Handle(Requirement requirement)
 {
     requirement.WorkDoneBy.Add("Work done by Software Engineer");
 }
 public void Handle(Requirement requirement)
 {
     requirement.WorkDoneBy.Add("Work done by Architect");
     _projectDevelopment.Handle(requirement);
 }
 public void Handle(Requirement requirement)
 {
     requirement.WorkDoneBy.Add("Work done by project manager");
     _projectDevelopment.Handle(requirement);
 }