FactoryMenthod
做一个汽车性能试验的项目:
先建立抽象car:
abstract class AbstractCar
{
public abstract void Starup();
public abstract void Run();
public abstract void Turn(Direction direction);
public abstract void Stop();
}
{
public abstract void Starup();
public abstract void Run();
public abstract void Turn(Direction direction);
public abstract void Stop();
}
而后是其中一种汽车"红旗"的方法,继承抽象的"车":
public class HongQiCar : AbstractCar
{
Engine engine1;
public override void Starup()
{
//
}
public override void Run()
{
//.
}
}
{
Engine engine1;
public override void Starup()
{
//
}
public override void Run()
{
//.
}
}
如果在一个测试工厂里面需要两个以上的一种汽车做测试,那么就需要一个"汽车工厂"来实例多辆汽车,这个是给其他汽车用来继承的:
abstract class CarFactory
{
public abstract Car CreateCar();
}
{
public abstract Car CreateCar();
}
实现其中一种汽车,继承carFactory:
public class HongqiCarFactory : CarFactory
{
public override Car CreateCar()
{
return new HongQiCar();
}
}
{
public override Car CreateCar()
{
return new HongQiCar();
}
}
然后写测试框架:
carTesing
最后是客户程序调用:
class App
{
public static void Main()
{
CarTestFramework carTestFramework = new CarTestFramework();
carTestFramework.BuildTestContest(new HongqiCarFactory());
}
}
{
public static void Main()
{
CarTestFramework carTestFramework = new CarTestFramework();
carTestFramework.BuildTestContest(new HongqiCarFactory());
}
}