using System;
namespace TestCS
{
class Program
{
static void Main(string[] args)
{
SimpleFactory factory = new SimpleFactory();
Vehicle vehicle0 = factory.CreateVehicle(EVehicleType.Bicycle);
Console.WriteLine("Create Vehicle " + vehicle0.GetName());
Vehicle vehicle1 = factory.CreateVehicle(EVehicleType.Car);
Console.WriteLine("Create Vehicle " + vehicle1.GetName());
Console.ReadKey();
}
}
enum EVehicleType
{
Car,
Bicycle,
}
class Vehicle
{
public virtual string GetName()
{
return string.Empty;
}
}
class Car : Vehicle
{
public override string GetName()
{
return "Car";
}
}
class Bicycle : Vehicle
{
public override string GetName()
{
return "Bicycle";
}
}
class SimpleFactory
{
public Vehicle CreateVehicle(EVehicleType type)
{
Vehicle vehicle = null;
switch (type)
{
case EVehicleType.Bicycle:
vehicle = new Bicycle();
break;
case EVehicleType.Car:
vehicle = new Car();
break;
}
return vehicle;
}
}
}