using System.Collections.Generic;
namespace FactoryMethod.RealWorld
Document[] documents = new Document[2];
documents[0] = new Resume();
documents[1] = new Report();
foreach (Document document in documents)
Console.WriteLine("\n" + document.GetType().Name + "-------");
foreach (Page page in document.Pages)
Console.WriteLine(" " + page.GetType().Name);
class EducationPage : Page
class ExperiencePage : Page
class IntroductionPage : Page
class ConclusionPage : Page
class BibliographyPage : Page
private List<Page> _pages = new List<Page>();
public abstract void CreatePages();
public override void CreatePages()
Pages.Add(new SkillsPage());
Pages.Add(new EducationPage());
Pages.Add(new ExperiencePage());
public override void CreatePages()
Pages.Add(new IntroductionPage());
Pages.Add(new ResultsPage());
Pages.Add(new ConclusionPage());
Pages.Add(new SummaryPage());
Pages.Add(new BibliographyPage());