namespace Factroy
{
interface Car
{
void GiveSpeed(int speed);//加速
void DeleSpeed(int speed); //减速
}
}
namespace Factroy
{
///
/// 原型工厂
///
class Factroys
{
public void CreatCar()
{
Console.WriteLine(“产出汽车”);
}
}
}
namespace Factroy
{
//贴牌
interface IEAM
{
void OEM();
}
interface IFly
{
void Fly();
}
}
namespace Factroy
{
class AuDi : Factroys, IEAM
{
public void OEM()
{
Console.WriteLine(“贴奥迪牌”);
}
}
}
namespace Factroy
{
///
/// 奔驰
///
class Ben : Factroys, IEAM
{
public void OEM()
{
Console.WriteLine(“贴奔驰牌”);
}
}
}
namespace Factroy
{
class Bmw:Factroys,IEAM,Car
{
public void DeleSpeed(int speed)
{
Console.WriteLine(“车速减去:” + speed);
}
public void GiveSpeed(int speed)
{
Console.WriteLine("车速是:" + speed);
}
/// <summary>
/// 贴宝马牌
/// </summary>
public void OEM()
{
Console.WriteLine("贴宝马牌");
}
}
}
namespace Factroy
{
class FlyBmw : Bmw, IFly
{
public void Fly()
{
Console.WriteLine(“并且还会飞”);
}
}
}
namespace Factroy
{
/// <summary>
/// 工厂模式其实就是找出所有类的共性,比如人和猫都是动物,
/// 宝马和奔驰都是汽车。
/// 抽象工厂,是指把基类抽象,在子类中分别实现,
/// 比如人和猫都会走,但人走路两条腿,
/// 但,猫走路四条腿。工厂可以生产汽车,
/// 但是生产不同牌子的汽车。
/// 在这里接口也大有用处,比如猫是不会说话的
/// ,但是有一只特殊的猫Tom,
/// 会说话,那么就让Tom猫这个类继承一个接口,
/// 接口中有说话的方法,那么就可以让Tom和别的猫不同。
/// </summary>
class Program
{
static void Main(string[] args)
{
Factroys factroys = new Factroys();
Bmw bmw = new Bmw();
Ben ben = new Ben();
AuDi audi = new AuDi();
//bmw.CreatCar().GiveSpeed(200);
//bmw.OEM();
//ben.CreatCar().GiveSpeed(180);
//ben.OEM();
//audi.CreatCar().GiveSpeed(150);
//audi.OEM();
FlyBmw fb = new FlyBmw();
//fb.CreatCar().GiveSpeed(500);
//fb.CreatCar().GiveSpeed(200);
//fb.OEM();
//fb.Fly();
fb.CreatCar();
fb.GiveSpeed(500);
fb.OEM();
fb.DeleSpeed(200);
Console.ReadKey();
}
}
}