Example #1
0
        public void RentCarAtCrossedUsedTime_Exception()
        {
            var clientFacade = new ClientFacade("Bob");
            var carFacade1   = new CarFacade("Audi");
            var carFacade2   = new CarFacade("BMW");
            var date1        = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2        = new DateTimeOffset(new DateTime(2018, 11, 06));
            var date3        = new DateTimeOffset(new DateTime(2018, 10, 19));
            var time1        = new RentTime(date1, date2);
            var time2        = new RentTime(date1, date3);

            clientFacade.RentCar(carFacade1, time1);
            bool hasException = false;

            try
            {
                clientFacade.RentCar(carFacade2, time2);
            }
            catch (Exception)
            {
                hasException = true;
            }

            Assert.IsTrue(hasException);
        }
Example #2
0
        public void RentTwoCarsByOnClient_TwoCarsInRentHistory()
        {
            var clientFacade = new ClientFacade("Bob");
            var carFacade1   = new CarFacade("Audi");
            var carFacade2   = new CarFacade("BMW");
            var date1        = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2        = new DateTimeOffset(new DateTime(2018, 11, 06));
            var date3        = new DateTimeOffset(new DateTime(2018, 11, 10));
            var date4        = new DateTimeOffset(new DateTime(2018, 11, 19));
            var time1        = new RentTime(date1, date2);
            var time2        = new RentTime(date3, date4);

            clientFacade.RentCar(carFacade1, time1);
            clientFacade.RentCar(carFacade2, time2);

            var listOfRent = clientFacade.Client.RentHistory.ToList();

            Assert.AreEqual(listOfRent[0].Value, carFacade1);
            Assert.AreEqual(listOfRent[0].Key.StartTime, time1.StartTime);
            Assert.AreEqual(listOfRent[0].Key.EndTime, time1.EndTime);

            Assert.AreEqual(listOfRent[1].Value, carFacade2);
            Assert.AreEqual(listOfRent[1].Key.StartTime, time2.StartTime);
            Assert.AreEqual(listOfRent[1].Key.EndTime, time2.EndTime);
        }
Example #3
0
        public void Create_Returns_CarEngine()
        {
            Car       car       = new Car();
            CarFacade carFacade = car.Create();

            Assert.AreEqual <string>("CarEngine - SetEngine", carFacade.Engine);
        }
Example #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            var facade = new CarFacade();

            facade.CreateCompleteCar();
            Console.ReadKey();
        }
    static void Main(string[] args)
    {
        CarFacade facade = new CarFacade();

        facade.CreateCompleteCar();

        Console.ReadKey();
    }
Example #6
0
        private static void Main(string[] args)
        {
            Console.WriteLine("Demo Facade Mode");

            var car = new CarFacade();

            car.Run();
            car.Brake();
        }
Example #7
0
        public static void FacadeUsage()
        {
            var carFacade = new CarFacade();
            var car       = carFacade.Build <StripesStrategy>(EngineType.Diesel, Color.Black, 60);
            var car2      = carFacade.Create();

            carFacade.AddWeapon(car, Weapon.Axe);
            carFacade.AddDefense(car, Defense.Gloves);
        }
Example #8
0
        public void AddCar_NewCarInList()
        {
            var carRentFacade = new CarRentCompanyFacade();
            var carFacade     = new CarFacade("Lava Kavina");

            carRentFacade.AddCar(carFacade);

            Assert.AreEqual(carRentFacade.CarRentCompany.CarRepository.GetList().First().Name,
                            carFacade.Car.Name);
        }
Example #9
0
        public void IsAtServiceAtFreeTime_False()
        {
            var carFacade = new CarFacade("10");
            var date1     = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2     = new DateTimeOffset(new DateTime(2018, 11, 06));
            var time      = new RentTime(date1, date2);

            var isAtService = carFacade.IsAtServiceAt(time);

            Assert.IsFalse(isAtService);
        }
Example #10
0
        private static void FacadePatternCar()
        {
            Model       model       = new Model("Honda");
            Engine      engine      = new Engine("BIV");
            Body        body        = new Body("IND");
            Accessories accessories = new Accessories("Jappan");

            CarFacade car = new CarFacade(model, engine, body, accessories);

            car.MakeCar();
        }
Example #11
0
        public void IsFreeAtFreeTime_True()
        {
            var carFacade = new CarFacade("10");
            var date1     = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2     = new DateTimeOffset(new DateTime(2018, 11, 06));
            var time      = new RentTime(date1, date2);

            var isFreeAt = carFacade.IsFreeAt(time);

            Assert.IsTrue(isFreeAt);
        }
Example #12
0
        public void RemoveCar_LessCarInList()
        {
            var carRentFacade = new CarRentCompanyFacade();
            var carFacade     = new CarFacade("Lava Kavina");

            carRentFacade.CarRentCompany.CarRepository.Create(carFacade.Car);

            carRentFacade.RemoveCar(carFacade);

            Assert.AreEqual(carRentFacade.CarRentCompany.CarRepository.GetSize(), 0);
        }
Example #13
0
        public void CarFacadeReturnsProperCarTest()
        {
            var carFacade = new CarFacade();
            var car       = carFacade.CreateCar(1997, "Audi", 300, 300, Guid.NewGuid(), Color.Pink, EngineType.Diesel);

            Assert.AreEqual(car.ProductionYear, 1997);
            Assert.AreEqual(car.Brand, "Audi");
            Assert.AreEqual(car.KerbWeight, 300);
            Assert.AreEqual(car.MaxVelocity, 300);
            Assert.AreEqual(car.Color, Color.Pink);
            Assert.AreEqual(car.EngineType, EngineType.Diesel);
        }
Example #14
0
        public void IsAtRentAtBusyTime_True()
        {
            var carFacade = new CarFacade("10");
            var date1     = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2     = new DateTimeOffset(new DateTime(2018, 11, 06));
            var time      = new RentTime(date1, date2);

            carFacade.Car.Rents.Add(time);
            var isAtRent = carFacade.IsAtRentAt(time);

            Assert.IsTrue(isAtRent);
        }
Example #15
0
        public void RentCar_CarInRentHistory()
        {
            var clientFacade = new ClientFacade("Bob");
            var carFacade    = new CarFacade("Audi");
            var date1        = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2        = new DateTimeOffset(new DateTime(2018, 11, 06));
            var time         = new RentTime(date1, date2);

            clientFacade.RentCar(carFacade, time);

            Assert.AreEqual(carFacade, clientFacade.Client.RentHistory.First().Value);
        }
Example #16
0
        private static void FacadeTest()
        {
            Console.WriteLine("---------------------------");
            Console.WriteLine("FacadeTest");
            var facade = new CarFacade(new Engine(), new Transmission(), new Control());

            facade.Start();
            facade.MoveToHome();
            facade.Stop();

            Console.WriteLine("---------------------------");
        }
        static void Main(string[] args)
        {
            Console.WriteLine();
            Console.WriteLine("Creating a new AUDI...");
            Console.WriteLine();

            var facade = new CarFacade();

            facade.CreateAudi();

            Console.WriteLine();
            Console.ReadKey();
        }
Example #18
0
        public void CarFacadeTest()
        {
            var carFacade = new CarFacade();
            var car       = carFacade.Build <StripesStrategy>(EngineType.Diesel, Color.Black, 60);

            Assert.AreEqual(Color.Black, car.Color);
            Assert.AreEqual(60, car.MaxSpeed);
            Assert.AreEqual(EngineType.Diesel, car.EngineType);

            var car2 = carFacade.Create();

            Assert.IsInstanceOfType(car2, typeof(Car));
        }
Example #19
0
        public void RentCar10Times_CarAtService()
        {
            var carRentCompanyFacade = new CarRentCompanyFacade();
            var carFacade            = new CarFacade("10");
            var clientFacade         = new ClientFacade("Bob");
            var date1  = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2  = new DateTimeOffset(new DateTime(2018, 10, 07));
            var date3  = new DateTimeOffset(new DateTime(2018, 10, 08));
            var date4  = new DateTimeOffset(new DateTime(2018, 10, 09));
            var date5  = new DateTimeOffset(new DateTime(2018, 10, 10));
            var date6  = new DateTimeOffset(new DateTime(2018, 10, 11));
            var date7  = new DateTimeOffset(new DateTime(2018, 10, 12));
            var date8  = new DateTimeOffset(new DateTime(2018, 10, 13));
            var date9  = new DateTimeOffset(new DateTime(2018, 10, 14));
            var date10 = new DateTimeOffset(new DateTime(2018, 10, 15));
            var date11 = new DateTimeOffset(new DateTime(2018, 10, 16));
            var date12 = new DateTimeOffset(new DateTime(2018, 10, 17));
            var date13 = new DateTimeOffset(new DateTime(2018, 10, 18));
            var date14 = new DateTimeOffset(new DateTime(2018, 10, 19));
            var date15 = new DateTimeOffset(new DateTime(2018, 10, 20));
            var date16 = new DateTimeOffset(new DateTime(2018, 10, 21));
            var date17 = new DateTimeOffset(new DateTime(2018, 10, 22));
            var date18 = new DateTimeOffset(new DateTime(2018, 10, 23));
            var date19 = new DateTimeOffset(new DateTime(2018, 10, 24));
            var date20 = new DateTimeOffset(new DateTime(2018, 10, 25));
            var time1  = new RentTime(date1, date2);
            var time2  = new RentTime(date3, date4);
            var time3  = new RentTime(date5, date6);
            var time4  = new RentTime(date7, date8);
            var time5  = new RentTime(date9, date10);
            var time6  = new RentTime(date11, date12);
            var time7  = new RentTime(date13, date14);
            var time8  = new RentTime(date15, date16);
            var time9  = new RentTime(date17, date18);
            var time10 = new RentTime(date19, date20);

            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time1);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time2);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time3);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time4);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time5);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time6);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time7);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time8);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time9);
            carRentCompanyFacade.SendCarOnRent(carFacade, clientFacade.Client, time10);
            carRentCompanyFacade.SendCarOnService(carFacade, time10.EndTime.AddDays(1));

            Assert.AreEqual(carFacade.Car.Services.Count, 1);
            Assert.AreEqual(carFacade.Car.CountToService, 0);
        }
Example #20
0
        public static void Main()
        {
            CarFacade facade = new CarFacade();

            facade.createAndStoreCar(
                13,
                "Москвич, много запазен",
                420000,
                "Дядо Петър",
                "БГ1243СТ"
                );

            facade.printCarFromId(13);
        }
Example #21
0
        public void IsAtRentAtCrossedTime_True()
        {
            var carFacade = new CarFacade("10");
            var date1     = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2     = new DateTimeOffset(new DateTime(2018, 11, 06));
            var date3     = new DateTimeOffset(new DateTime(2018, 10, 31));
            var date4     = new DateTimeOffset(new DateTime(2019, 02, 26));
            var time1     = new RentTime(date1, date2);
            var time2     = new RentTime(date3, date4);

            carFacade.Car.Rents.Add(time1);
            var isAtRent = carFacade.IsAtRentAt(time2);

            Assert.IsTrue(isAtRent);
        }
Example #22
0
        public void SendCarOnService_CarOnService()
        {
            var carRentFacade = new CarRentCompanyFacade();
            var clientFacade  = new ClientFacade("Bob");
            var carFacade     = new CarFacade("Lava Kavina");
            var date1         = new DateTimeOffset(new DateTime(2018, 10, 07));
            var date2         = new DateTimeOffset(new DateTime(2018, 11, 07));
            var time          = new RentTime(date1, date2);

            carRentFacade.CarRentCompany.CarRepository.Create(carFacade.Car);

            carRentFacade.SendCarOnService(carFacade, time.StartTime);

            Assert.AreEqual(carRentFacade.CarRentCompany.CarRepository.GetItem(0).IsAtServiceAt(time), true);
        }
Example #23
0
        public void GetCarsAt_Cars()
        {
            var carRentFacade = new CarRentCompanyFacade();
            var carFacade1    = new CarFacade("10");
            var carFacade2    = new CarFacade("Lava Kavina");
            var date1         = new DateTimeOffset(new DateTime(2018, 10, 07));
            var date2         = new DateTimeOffset(new DateTime(2018, 11, 07));
            var time          = new RentTime(date1, date2);

            carRentFacade.CarRentCompany.CarRepository.Create(carFacade1.Car);
            carRentFacade.CarRentCompany.CarRepository.Create(carFacade2.Car);

            var cars = carRentFacade.GetCarsAt(time);

            Assert.AreEqual(cars.ToArray()[0].Name, carFacade1.Car.Name);
            Assert.AreEqual(cars.ToArray()[1].Name, carFacade2.Car.Name);
        }
Example #24
0
        public void HasCarAt_False()
        {
            var answer       = false;
            var clientFacade = new ClientFacade("Bob");
            var carFacade    = new CarFacade("Audi");
            var date1        = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2        = new DateTimeOffset(new DateTime(2018, 11, 06));
            var date3        = new DateTimeOffset(new DateTime(2018, 11, 10));
            var date4        = new DateTimeOffset(new DateTime(2022, 01, 13));
            var time1        = new RentTime(date1, date2);
            var time2        = new RentTime(date3, date4);

            clientFacade.RentCar(carFacade, time1);
            var hasCar = clientFacade.HasCarAt(time2);

            Assert.AreEqual(answer, hasCar);
        }
Example #25
0
        public void RentLotsOfCars_ClientsWithRentHistory()
        {
            var clientFacade1 = new ClientFacade("Bob");
            var carFacade1    = new CarFacade("1");
            var carFacade2    = new CarFacade("2");
            var date1         = new DateTimeOffset(new DateTime(2018, 10, 06));
            var date2         = new DateTimeOffset(new DateTime(2018, 10, 10));
            var date3         = new DateTimeOffset(new DateTime(2018, 10, 30));
            var date4         = new DateTimeOffset(new DateTime(2018, 11, 02));
            var date5         = new DateTimeOffset(new DateTime(2018, 12, 01));
            var date6         = new DateTimeOffset(new DateTime(2018, 12, 31));
            var time1         = new RentTime(date1, date2);
            var time2         = new RentTime(date3, date4);
            var time3         = new RentTime(date5, date6);

            var clientFacade2 = new ClientFacade("Alice");
            var carFacade3    = new CarFacade("3");
            var carFacade4    = new CarFacade("4");
            var carFacade5    = new CarFacade("5");
            var carFacade6    = new CarFacade("6");
            var date7         = new DateTimeOffset(new DateTime(2018, 10, 15));
            var date8         = new DateTimeOffset(new DateTime(2018, 11, 30));
            var date9         = new DateTimeOffset(new DateTime(2018, 12, 06));
            var date10        = new DateTimeOffset(new DateTime(2018, 12, 27));
            var date11        = new DateTimeOffset(new DateTime(2019, 03, 01));
            var date12        = new DateTimeOffset(new DateTime(2019, 04, 14));
            var date13        = new DateTimeOffset(new DateTime(2019, 11, 10));
            var date14        = new DateTimeOffset(new DateTime(2020, 11, 19));
            var time4         = new RentTime(date7, date8);
            var time5         = new RentTime(date9, date10);
            var time6         = new RentTime(date11, date12);
            var time7         = new RentTime(date13, date14);

            clientFacade1.RentCar(carFacade1, time1);
            clientFacade1.RentCar(carFacade2, time2);
            clientFacade1.RentCar(carFacade1, time3);

            clientFacade2.RentCar(carFacade3, time4);
            clientFacade2.RentCar(carFacade4, time5);
            clientFacade2.RentCar(carFacade5, time6);
            clientFacade2.RentCar(carFacade6, time7);

            Assert.AreEqual(clientFacade1.GetHistory().Count, 3);
            Assert.AreEqual(clientFacade2.GetHistory().Count, 4);
        }
        public static void Main()
        {
            var car = new CarBuilder()
                      .SetProductionYear(1999)
                      .SetBrand("Audi")
                      .SetMaxVelosity(300)
                      .Build();

            Boat boat = new Boat();

            boat.ChangeMoveStrategy(new DriveStrategy());

            IDecorator vehicle = new Car();

            vehicle = new MachineGunDecorator(vehicle);
            System.Console.WriteLine(vehicle.Weapon());

            CarFacade car1 = new CarFacade();

            car1.CreateCar(1997, "Audi", 3000, 350, Guid.NewGuid(), Color.Black, EngineType.Diesel);


            System.Console.ReadKey();
        }
        public void MyTestMethodFacade()
        {
            var cf = new CarFacade();

            cf.CreateCompleteCar();
        }
Example #28
0
        public static void Facade_Pattern()
        {
            var carFacade = new CarFacade();

            carFacade.CreateCompleteCar();
        }
Example #29
0
 static void Main(string[] args)
 {
 CarFacade facade = new CarFacade();
 
 facade.CreateCompleteCar();
 
 Console.ReadKey();
 
 }
        private static void Main(string[] args)
        {
            #region AbstactFactoryDesignPattern

            /* Factory factory = new Factory();
             * IVehicleFactory bike = factory.GetVehicle(EVehicleType.Bike);
             * bike.Drive();
             * IVehicleFactory scooter = factory.GetVehicle(EVehicleType.Scooter);
             * scooter.Drive();
             * IVehicleFactory car = factory.GetVehicle(EVehicleType.Car);
             * car.Drive();
             * IVehicleFactory bus = factory.GetVehicle(EVehicleType.Bus);
             * bus.Drive();
             * IVehicleFactory lorry = factory.GetVehicle(EVehicleType.Lorry);
             * lorry.Drive();
             * IVehicleFactory train = factory.GetVehicle(EVehicleType.Train);
             * train.Drive();
             * IVehicleFactory ship = factory.GetVehicle(EVehicleType.Ship);
             * ship.Drive();
             * IVehicleFactory helicopter = factory.GetVehicle(EVehicleType.Helicopter);
             * helicopter.Drive();
             */

            #endregion AbstactFactoryDesignPattern

            #region Adapter

            ITarget Itarget = new EmployeeAdapter();
            ThirdPartyBillingSystem client = new ThirdPartyBillingSystem(Itarget);
            client.ShowEmployeeList();

            #endregion Adapter

            #region Bridge

            IMessageSender email = new EmailSender();
            IMessageSender queue = new MSMQSender();
            IMessageSender web   = new WebServiceSender();

            Message message = new SystemMessage();
            message.Subject = "Test Message";
            message.Body    = "Hi, This is a Test Message";

            message.MessageSender = email;
            message.Send();

            message.MessageSender = queue;
            message.Send();

            message.MessageSender = web;
            message.Send();

            UserMessage usermsg = new UserMessage();
            usermsg.Subject      = "Test Message";
            usermsg.Body         = "Hi, This is a Test Message";
            usermsg.UserComments = "I hope you are well";

            usermsg.MessageSender = email;
            usermsg.Send();

            #endregion Bridge

            #region Builder

            var vehicleCreator = new VehicleCreator(new HeroBuilder());
            vehicleCreator.CreateVehicle();
            var vehicle = vehicleCreator.GetVehicle();
            vehicle.ShowInfo();

            Console.WriteLine("---------------------------------------------");

            vehicleCreator = new VehicleCreator(new HondaBuilder());
            vehicleCreator.CreateVehicle();
            vehicle = vehicleCreator.GetVehicle();
            vehicle.ShowInfo();

            #endregion Builder

            #region ChainOfResponsiblity

            Approver rohit = new Clerk();
            Approver rahul = new AssistantManager();
            Approver manoj = new Manager();

            rohit.Successor = rahul;
            rahul.Successor = manoj;

            // Generate and process loan requests
            var loan = new Loan {
                Number = 2034, Amount = 24000.00, Purpose = "Laptop Loan"
            };
            rohit.ProcessRequest(loan);

            loan = new Loan {
                Number = 2035, Amount = 42000.10, Purpose = "Bike Loan"
            };
            rohit.ProcessRequest(loan);

            loan = new Loan {
                Number = 2036, Amount = 156200.00, Purpose = "House Loan"
            };
            rohit.ProcessRequest(loan);

            #endregion ChainOfResponsiblity

            #region Command

            Console.WriteLine("Enter Commands (ON/OFF) : ");
            string   cmd        = Console.ReadLine();
            Light    lamp       = new Light();
            ICommand switchUp   = new FlipUpCommand(lamp);
            ICommand switchDown = new FlipDownCommand(lamp);

            Switch s = new Switch();

            if (cmd == "ON")
            {
                s.StoreAndExecute(switchUp);
            }
            else if (cmd == "OFF")
            {
                s.StoreAndExecute(switchDown);
            }
            else
            {
                Console.WriteLine("Command \"ON\" or \"OFF\" is required.");
            }

            #endregion Command

            #region Composite

            Employee Rahul = new Employee {
                EmpID = 1, Name = "Rahul"
            };

            Employee Amit = new Employee {
                EmpID = 2, Name = "Amit"
            };
            Employee Mohan = new Employee {
                EmpID = 3, Name = "Mohan"
            };

            Rahul.AddSubordinate(Amit);
            Rahul.AddSubordinate(Mohan);

            Employee Rita = new Employee {
                EmpID = 4, Name = "Rita"
            };
            Employee Hari = new Employee {
                EmpID = 5, Name = "Hari"
            };

            Amit.AddSubordinate(Rita);
            Amit.AddSubordinate(Hari);

            Employee Kamal = new Employee {
                EmpID = 6, Name = "Kamal"
            };
            Employee Raj = new Employee {
                EmpID = 7, Name = "Raj"
            };

            Contractor Sam = new Contractor {
                EmpID = 8, Name = "Sam"
            };
            Contractor tim = new Contractor {
                EmpID = 9, Name = "Tim"
            };

            Mohan.AddSubordinate(Kamal);
            Mohan.AddSubordinate(Raj);
            Mohan.AddSubordinate(Sam);
            Mohan.AddSubordinate(tim);

            Console.WriteLine("EmpID={0}, Name={1}", Rahul.EmpID, Rahul.Name);

            foreach (Employee manager in Rahul)
            {
                Console.WriteLine("\n EmpID={0}, Name={1}", manager.EmpID, manager.Name);

                foreach (var employee in manager)
                {
                    Console.WriteLine(" \t EmpID={0}, Name={1}", employee.EmpID, employee.Name);
                }
            }

            #endregion Composite

            #region Decorator

            HondaCity car = new HondaCity();
            Console.WriteLine("Honda City base price are : {0}", car.Price);
            SpecialOffer offer = new SpecialOffer(car);
            offer.DiscountPercentage = 25;
            offer.Offer = "25 % discount";

            Console.WriteLine("{1} @ Diwali Special Offer and price are : {0} ", offer.Price, offer.Offer);

            #endregion Decorator

            #region Facade

            CarFacade facade = new CarFacade();
            facade.CreateCompleteCar();

            #endregion Facade

            #region Flyweight

            ShapeObjectFactory sof = new ShapeObjectFactory();

            IShape shape = sof.GetShape("Rectangle");
            shape.Print();
            shape = sof.GetShape("Rectangle");
            shape.Print();
            shape = sof.GetShape("Rectangle");
            shape.Print();

            shape = sof.GetShape("Circle");
            shape.Print();
            shape = sof.GetShape("Circle");
            shape.Print();
            shape = sof.GetShape("Circle");
            shape.Print();

            int NumObjs = sof.TotalObjectsCreated;
            Console.WriteLine("\nTotal No of Objects created = {0}", NumObjs);

            #endregion Flyweight

            #region FactoryDesignPattern

            Factory factory = new Factory();
            FactoryDesignPattern.IVehicleFactory bike = factory.GetVehicle(EVehicleType.Bike);
            bike.Drive();
            FactoryDesignPattern.IVehicleFactory scooter = factory.GetVehicle(EVehicleType.Scooter);
            scooter.Drive();
            FactoryDesignPattern.IVehicleFactory fcar = factory.GetVehicle(EVehicleType.Car);
            fcar.Drive();
            FactoryDesignPattern.IVehicleFactory bus = factory.GetVehicle(EVehicleType.Bus);
            bus.Drive();
            FactoryDesignPattern.IVehicleFactory lorry = factory.GetVehicle(EVehicleType.Lorry);
            lorry.Drive();
            FactoryDesignPattern.IVehicleFactory train = factory.GetVehicle(EVehicleType.Train);
            train.Drive();
            FactoryDesignPattern.IVehicleFactory ship = factory.GetVehicle(EVehicleType.Ship);
            ship.Drive();
            FactoryDesignPattern.IVehicleFactory helicopter = factory.GetVehicle(EVehicleType.Helicopter);
            helicopter.Drive();

            #endregion FactoryDesignPattern

            #region Prototype

            Developer dev = new Developer();
            dev.Name = "Rahul";
            dev.Role = "Team Leader";
            dev.PreferredLanguage = "C#";

            Developer devCopy = (Developer)dev.Clone();
            devCopy.Name = "Arif"; //Not mention Role and PreferredLanguage, it will copy above

            Console.WriteLine(dev.GetDetails());
            Console.WriteLine(devCopy.GetDetails());

            Typist typist = new Typist();
            typist.Name           = "Monu";
            typist.Role           = "Typist";
            typist.WordsPerMinute = 120;

            Typist typistCopy = (Typist)typist.Clone();
            typistCopy.Name           = "Sahil";
            typistCopy.WordsPerMinute = 115;//Not mention Role, it will copy above

            Console.WriteLine(typist.GetDetails());
            Console.WriteLine(typistCopy.GetDetails());

            #endregion Prototype

            #region Proxy

            ProxyClient proxy = new ProxyClient();
            Console.WriteLine("Data from Proxy Client = {0}", proxy.GetData());

            #endregion Proxy

            #region Singleton

            EagerSingleton.Instance.Show();
            LazySingleton.Instance.Show();
            Singleton.Instance.Show();

            #endregion Singleton

            Console.ReadKey();
        }
Example #31
0
    public void Run()
    {
        CarFacade facade = new CarFacade();

        facade.CreateCompleteCar();
    }