Example #1
0
        static void Main(string[] args)
        {
            var container = ContainerConfig.Configure();

            Console.WriteLine("\n1- SimpleFactory");

            //1 - SimpleFactory
            var simpleFactoryClient = new SimpleFactoryClient();

            simpleFactoryClient.BuildPizza(typeof(NeapolitanPizza).Name);

            Console.WriteLine("\n2- FactoryMethod");

            //2 - FactoryMethod

            using (var scope = container.BeginLifetimeScope())
            {
                var factory             = scope.Resolve <FactoryMethodPizzaFactory>();
                var factoryMethodClient = new FactoryMethodClient(factory);
                factoryMethodClient.BuildPizza();
            }

            Console.WriteLine("\n3 - AbstractFactory");

            //3 - AbstractFactory
            using (var scope = container.BeginLifetimeScope())
            {
                var factory             = scope.ResolveNamed <AbstractFactoryPizzaFactory>(typeof(NeapolitanPizzaThickCrustFactory).Name);
                var factoryMethodClient = new AbstractFactoryClient(factory);
                factoryMethodClient.BuildPizza();
            }

            Console.ReadLine();
        }