コード例 #1
0
ファイル: Program.cs プロジェクト: mshahjada/designpattern
        private static void FactoryMethod()
        {
            Console.WriteLine("---------Factory Method Design Pattern--------\n");

            Console.WriteLine("Choose: \n1. Car\n2. Bike");

            string data = Console.ReadLine();

            VehicleFactory vehicleFactory = null;

            switch (data)
            {
            case "Car":
                vehicleFactory = new BikeFactory("1500", 6, 200);
                break;

            case "Bike":
                vehicleFactory = new BikeFactory("150", 5, 130);
                break;

            default:
                break;
            }

            if (vehicleFactory != null)
            {
                var obj = vehicleFactory.GetVehicle();
                Console.WriteLine($"{data} has CC-{obj.CC}, Gears-{obj.Gears}, Max Speed-{obj.MaxSpeed}");
            }
            else
            {
                Console.WriteLine($"No info found for {data}");
            }
        }
コード例 #2
0
 public void BikeFactory_CreateBike_ReturnsInstanceOfIBike()
 {
     // Arrange
     // Act
     // Assert
     Assert.IsInstanceOfType(BikeFactory.CreateBike(BikeType.Hybrid), typeof(IBike));
 }
コード例 #3
0
        public static void Main()
        {
            BikeFactory factory = new BikeFactory();
            IBike roadBike = factory.GetBike("RoadBike");

            Console.WriteLine(roadBike.Description);
        }
コード例 #4
0
ファイル: BikeFactoryTest.cs プロジェクト: sparrow41/training
 public void BikeFactoryMethodtest()
 {
     var bikeFactoryInstance = new BikeFactory();
     var bike = bikeFactoryInstance.Create("Specialized");
     bike.Colour = "Green";
     var test= bike.Ride("Enduro");
 }
コード例 #5
0
        public void StartApp()
        {
            BikeFactory factory = null;

            Console.WriteLine("Chose the type of bike u wanna order:");
            Console.WriteLine("1. Bmx \n 2. Racing bike \n 3. MTB");
            var bike = Console.ReadLine();

            switch (bike)
            {
            case "1":
                factory = new BmxFactory(16, 2000);
                break;

            case "2":
                factory = new RacingFactory(28, 100000);
                break;

            case "3":
                factory = new MTFactory(26, 99999);
                break;

            default:
                Console.WriteLine("We dont have bike like this, so sorry!");
                break;
            }

            var chosenBike = factory.CreateBike();

            Console.WriteLine("Your ordered bike is: \n");
            Console.WriteLine("Bike type: {0}\n Wheel size: {1} \n Price: {2}",
                              chosenBike.BikeType, chosenBike.WheelSize, chosenBike.Price);

            Console.ReadLine();
        }
コード例 #6
0
        public void CreateInstanceTest()
        {
            var vehicle1 = new CarFactory();
            var vehicle2 = new MotorbikeFactory();
            var vehicle3 = new BikeFactory();

            vehicle1.Should().BeOfType <CarFactory>();
            vehicle2.Should().BeOfType <MotorbikeFactory>();
            vehicle3.Should().BeOfType <BikeFactory>();

            var car = vehicle1.Factory();

            car.Name.Should().Be("Car");
            car.Wheels.Should().Be(4);
            car.HasEngine.Should().BeTrue();

            var motorBike = vehicle2.Factory();

            motorBike.Name.Should().Be("Motorbike");
            motorBike.Wheels.Should().Be(2);
            motorBike.HasEngine.Should().BeTrue();

            var bike = vehicle3.Factory();

            bike.Name.Should().Be("Bike");
            bike.Wheels.Should().Be(2);
            bike.HasEngine.Should().BeFalse();
        }
コード例 #7
0
        public void BikeFactoryMethodtest()
        {
            var bikeFactoryInstance = new BikeFactory();
            var bike = bikeFactoryInstance.Create("Specialized");

            bike.Colour = "Green";
            var test = bike.Ride("Enduro");
        }
コード例 #8
0
        // Bike-related

        public BaseBike CreateBaseBike(string ctrlType, string peerId, string name, Team t)
        {
            Heading heading = BikeFactory.PickRandomHeading();
            Vector2 pos     = BikeFactory.PositionForNewBike(this.CoreData.Bikes.Values.ToList(), heading, Ground.zeroPos, Ground.gridSize * 10);
            string  bikeId  = Guid.NewGuid().ToString();

            return(new BaseBike(CoreData, bikeId, peerId, name, t, ctrlType, CurrentRunningGameTime, pos, heading));
        }
コード例 #9
0
        public static void Run()
        {
            Console.WriteLine($"{Environment.NewLine}*** FACTORY PATTERN ***{Environment.NewLine}");

            BikeFactory.CreateBike(BikeType.Hybrid);
            BikeFactory.CreateBike(BikeType.Mountain);
            BikeFactory.CreateBike(BikeType.Road);
        }
コード例 #10
0
        public static void Main()
        {
            BikeFactory factory = new BikeFactory();

            IBike roadBike = factory.GetBike("RoadBike");
            roadBike.FrameSize = 54;

            Console.WriteLine(roadBike.Description + " with " + roadBike.FrameSize);

            IBike anotherBike = factory.GetBike("RoadBike");

            Console.WriteLine(anotherBike.Description + " with " + anotherBike.FrameSize);

            Console.ReadLine();
        }
コード例 #11
0
        public void Execute()
        {
            IVehicleFactory vehicleFactory = null;

            Console.WriteLine("Enter 1 to drive Bike.");
            Console.WriteLine("Enter 2 to drive Scooty.");
            var choice = Convert.ToInt32(Console.ReadLine());

            if (choice == 1)
            {
                vehicleFactory = new BikeFactory(110, 55);
            }
            else
            {
                vehicleFactory = new ScootyFactory(80, 65);
            }

            var vehicle = vehicleFactory.CreateVehicle();

            vehicle.Drive();
        }