示例#1
0
        private static void TestAbstractFactory()
        {
            // Change the enum to change the factory and products!!
            IAbstractCakeFactory iceCreamCakeFactory = CakeMakerFactory.Instance.GetCakeFactory(DpConstants.CakeFactories.ChocolateCakeFactory);
            ICakeBase            cakeBase            = iceCreamCakeFactory.CakeBase();
            ICakeTopping         cakeTopping         = iceCreamCakeFactory.CakeTopping();

            cakeBase.MakeCakeBase();
            cakeTopping.MakeCakeTopping();
            Console.ReadLine();
        }
        public IAbstractCakeFactory GetCakeFactory(DpConstants.CakeFactories factoryType)
        {
            IAbstractCakeFactory cakeFactory = null;

            switch (factoryType)
            {
            case DpConstants.CakeFactories.ChocolateCakeFactory:
                cakeFactory = new ChocolateCakeFactory();
                break;

            case DpConstants.CakeFactories.IcecreamCakeFactory:
                cakeFactory = new IcecreamCakeFactory();
                break;

            default:
                cakeFactory = new IcecreamCakeFactory();
                break;
            }

            return(cakeFactory);
        }