工厂方法+反射:
using System;
using System.Collections.Generic;
using System.Text;
namespace FactoryMethod
{
abstract class AbstractCar
{
public abstract void StartUp();
public abstract void Run();
public abstract void Turn();
public abstract void Stop();
}
abstract class AbstractCarFactory
{
public abstract AbstractCar CreateCar();
}
class DongFengCarFactory : AbstractCarFactory
{
public override AbstractCar CreateCar()
{
return new DongfengCar();
}
}
class HongQiCarFactory : AbstractCarFactory
{
public override AbstractCar CreateCar()
{
return new HongQiCar();
}
}
class DongfengCar : AbstractCar
{
public override void StartUp()
{
}
public override void Run()
{
}
public override void Turn()
{
}
public override void Stop()
{
}
}
class HongQiCar : AbstractCar
{
public override void StartUp()
{
}
public override void Run()
{
}
public override void Turn()
{
}
public override void Stop()
{
}
}
class CarTestFrameWork
{
AbstractCar car;
public void BuildTesetContext(AbstractCarFactory abstractCarFactory)
{
car = abstractCarFactory.CreateCar();
}
public void DoTest()
{
Console.WriteLine("Test " + car.ToString() + " car!");
}
public void GetData()
{
}
}
//这个类里使用了反射
class Program
{
static void Main(string[] args)
{
CarTestFrameWork carTestFrameWork = new CarTestFrameWork();