using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DesignFactory.Adapter
{
/// <summary>
/// 适配器模式
/// </summary>
public interface ICar
{
void Drive();
}
public class CToyota : ICar
{
public void Drive()
{
Console.WriteLine("Vroom Vroom,we're off in your Toyota...");
}
}
public class CCessna
{
public void Fly()
{
Console.WriteLine("Static runup OK,we're off in our C172...");
}
}
public class CDriveableCessna : CCessna, ICar
{
public void Drive()
{
base.Fly();
}
}
public class CDrivableCessna2 : ICar
{
private CCessna m_oContained;
public CDrivableCessna2()
{
m_oContained = new CCessna();
}
public void Drive()
{
m_oContained.Fly();
}
}
public class Client
{
public static void Main(string[] args)
{
ICar oCar = new CToyota();
Console.WriteLine("Class Adapter:Driving an Automobile...");
oCar.Drive();
oCar = new CDriveableCessna();
Console.WriteLine("Driving a Cessna...");
oCar.Drive();
oCar = new CDrivableCessna2();
Console.WriteLine("Object Adapter:Driving a Cessna...");
oCar.Drive();
}
}
}