private static void Main(string[] args)
        {
            Console.WriteLine("======= Demonstration of Builder =======");
            var wp = new WordProcessor();

            // This code act as the client role that
            // creates the concrete builders and instruct
            // the director to construct objects.
            var asciiBuilder = new AsciiBuilder();

            wp.Construct(asciiBuilder);
            Console.WriteLine("--- The ASCII Builder output ---");
            Console.WriteLine(asciiBuilder.GetResult());

            var htmlBuilder = new HtmlBuilder();

            wp.Construct(htmlBuilder);
            Console.WriteLine("--- The HTML Builder ---");
            Console.WriteLine(htmlBuilder.GetResult());

            var countBuilder = new CountBuilder();

            wp.Construct(countBuilder);
            Console.WriteLine("--- Counting types ---");
            Console.WriteLine("Sections   : " + countBuilder.GetSectionCount());
            Console.WriteLine("Subcections: " + countBuilder.GetSubSectionCount());
            Console.WriteLine("Paragraphs : " + countBuilder.GetParagraphCount());

            var xmlBuilder = new XmlBuilder();

            wp.Construct(xmlBuilder);
            Console.WriteLine("--- The XML Builder ---");
            Console.WriteLine(xmlBuilder.GetResult());

            var wordCountBuilder = new WordCountBuilder();

            wp.Construct(wordCountBuilder);
            Console.WriteLine("-- Counting words --");
            Console.WriteLine("Number of words: " + wordCountBuilder.GetWordCount());

            Console.Read();
        }
        private static void Main(string[] args)
        {
            Console.WriteLine("======= Demonstration of Builder =======");
            var wp = new WordProcessor();

            // This code act as the client role that
            // creates the concrete builders and instruct
            // the director to construct objects.
            var asciiBuilder = new AsciiBuilder();
            wp.Construct(asciiBuilder);
            Console.WriteLine("--- The ASCII Builder output ---");
            Console.WriteLine(asciiBuilder.GetResult());

            var htmlBuilder = new HtmlBuilder();
            wp.Construct(htmlBuilder);
            Console.WriteLine("--- The HTML Builder ---");
            Console.WriteLine(htmlBuilder.GetResult());

            var countBuilder = new CountBuilder();
            wp.Construct(countBuilder);
            Console.WriteLine("--- Counting types ---");
            Console.WriteLine("Sections   : " + countBuilder.GetSectionCount());
            Console.WriteLine("Subcections: " + countBuilder.GetSubSectionCount());
            Console.WriteLine("Paragraphs : " + countBuilder.GetParagraphCount());

            var xmlBuilder = new XmlBuilder();
            wp.Construct(xmlBuilder);
            Console.WriteLine("--- The XML Builder ---");
            Console.WriteLine(xmlBuilder.GetResult());

            var wordCountBuilder = new WordCountBuilder();
            wp.Construct(wordCountBuilder);
            Console.WriteLine("-- Counting words --");
            Console.WriteLine("Number of words: " + wordCountBuilder.GetWordCount());

            Console.Read();
        }