public interface ICar
{
string Name { get; set; }
int Speed { get; set; }
void Drive();
}
public class Sedan : ICar
{
public string Name
{
get
{
return "Sedan Car";
}
set
{
Name = value;
}
}
public int Speed
{
get
{
return 100;
}
set
{
Speed = value;
}
}
public void Drive()
{
Console.WriteLine(Name + " is Running @ Speed " + Speed);
}
}
public class HatchBack : ICar
{
public string Name
{
get
{
return "Hatch Back Car";
}
set
{
Name = value;
}
}
public int Speed
{
get
{
return 120;
}
set
{
Speed = value;
}
}
public void Drive()
{
Console.WriteLine(Name + " is Running @ Speed " + Speed);
}
}
public class HatchFactory :CarFactory
{
public override ICar CreateCar()
{
return new HatchBack();
}
}
public class SedanFactory : CarFactory
{
public override ICar CreateCar()
{
return new Sedan();
}
}
class Program
{
static void Main(string[] args)
{
CarFactory factory = new SedanFactory();
ICar car = factory.CreateCar();
car.Drive();
factory = new HatchFactory();
car = factory.CreateCar();
car.Drive();
Console.Read();
}
}
Guys, can some one tell whether this is factory/abstract factory implementation
Thanks
Tutu












