static void Main(string[] args)
        {
            var factory = new HeroFactory(
                new ElfBeast("protecting"),
                new ElfMage("cooking"),
                new ElfWarlord("cleaning"));

            var beast   = factory.createBeast();
            var mage    = factory.createMage();
            var warlord = factory.createWarlord();

            Console.WriteLine(beast.ToString());
            Console.WriteLine(mage.ToString());
            Console.WriteLine(warlord.ToString());

            factory = new HeroFactory(
                new OrcBeast("laser"),
                new OrcMage("axe"),
                new OrcWarlord("sword"));

            beast   = factory.createBeast();
            mage    = factory.createMage();
            warlord = factory.createWarlord();

            Console.WriteLine(beast.ToString());
            Console.WriteLine(mage.ToString());
            Console.WriteLine(warlord.ToString());
        }