1、适配器模式说明
适配器模式就是定义一个类,将一种接口转换为另一种接口。
2、定义两个接口
public class BlackDuck : IDuck
{
public void Quark()
{
Console.WriteLine("BlackDuck");
}
public void Fly()
{
Console.WriteLine("I am flying");
}
}
public class RedTurkey : ITurkey
{
public void Gobble()
{
Console.WriteLine("RedTurkey");
}
public void Fly()
{
Console.WriteLine("I am flying");
}
}
3、定义一个是适配器
将ITurkey接口转换为IDuck接口。
public class TurkeyAdapter : IDuck
{
public ITurkey Turkey;
public TurkeyAdapter(ITurkey turkey)
{
Turkey = turkey;
}
public void Quark()
{
Turkey.Gobble();
}
public void Fly()
{
Turkey.Fly();
}
}
4、实现两个接口
public class BlackDuck : IDuck
{
public void Quark()
{
Console.WriteLine("BlackDuck");
}
public void Fly()
{
Console.WriteLine("I am flying");
}
}
public class RedTurkey : ITurkey
{
public void Gobble()
{
Console.WriteLine("RedTurkey");
}
public void Fly()
{
Console.WriteLine("I am flying");
}
}
5、使用
static void Main(string[] args)
{
ITurkey turkey = new RedTurkey();
IDuck durk = new TurkeyAdapter(turkey);
durk.Quark();
Console.ReadLine();
}
实际上这是一种《对象适配器》,是通过实现接口的方式来实现的。还有一种实现方法就是采用多继承的方式来实现(显然C#或者Java是不支持多继承)的,也就是将TurkeyAdapter继承自需要相互转换的两个类。同样也可以实现适配器的功能