Example #1
0
        private static void CreateBicycle()
        {
            //Create a bicycle
            IVehicleFactory _vehicleFactory = new BicycleFactory();
            IVehicle        bicycle         = _vehicleFactory.CreateVehicle();

            bicycle.Actions();
            bicycle.Parts();
        }
Example #2
0
        static void Main(string[] args)
        {
            #region simple factory
            //Simple factory; geen interfaces, geen abstract classes, allemaal simpele implementaties.
            var simplePizzaFactory = new SimplePizzaFactory();
            var pizza = simplePizzaFactory.CreatePizza();
            #endregion



            #region method factory
            //method factory; geen interfaces, geen abstract classes, allemaal simpele implementaties.
            var margheritaPizzaFactory = new PizzaMargheritaFactory();
            var margherita             = margheritaPizzaFactory.CreatePizza();
            #endregion


            #region abstract factory (builder pattern in background)
            //Abstract factory; iedere van de aangemaakte 'soorten' objecten zijn aan elkaar gerelateerd per factory.
            //Bijvoorbeeld een Auto, Vliegtuig en

            //Create several bicycle objects; common in that they have two wheels.
            var bicycleFactory = new BicycleFactory();

            var motorcycle      = bicycleFactory.CreateGasolinePowered();
            var colinFurzesBike = bicycleFactory.CreateJetPowered(); //Deze fiets is speciaal; hij heeft ook pedalen.
            var bike            = bicycleFactory.CreatePeddlePowered();

            //Create several leased cars, common in that they have four wheels, are gray, and may be a bit boring.
            var carFactory = new LeaseCarFactory();

            var leaseCar   = carFactory.CreateGasolinePowered();
            var leisureCar = carFactory.CreateJetPowered();

            //Create some planes
            var planeFactory   = new AirplaneFactory();
            var propellerPlane = planeFactory.CreateGasolinePowered();
            var corporateJet   = planeFactory.CreateJetPowered();

            #endregion
        }