中国足球的水平虽然不高,但实际上,在每个城市会有一批足球爱好者,他们踢球、看球、懂球。有这样的2个足球爱好者,一个是左脚选手,另一个是右脚选手。
public class PlayWithLeft
{
public void Play()
{
Console.WriteLine("我是左脚选手");
}
}
public class PlayWitRight
{
public void Play()
{
Console.WriteLine("我是右脚选手");
}
}
该城市的足球协会,也有意组织足球比赛,他们准备好场地,找来裁判,并拉来赞助商......可以抽象成如下的接口:
public interface IPlay
{
void PlayGame();
}
好了,足协为比赛做好了一切准备,以上的2名选手也想参加比赛,怎么办呢?这时候,适配器可以登场了。以下的这个适配器类就像一个球队,不仅遵循足协的规定,并且把2名选手招致麾下。
public class Play : IPlay
{
public void PlayGame()
{
PlayWithLeft left = new PlayWithLeft();
PlayWitRight right = new PlayWitRight();
left.Play();
right.Play();
}
}
组队完毕,适配器类就可以粉墨登场,参加比赛了。
class Program
{
static void Main(string[] args)
{
Play p = new Play();
p.PlayGame();
Console.ReadKey();
}
}
总结:当一个类实现某个接口方法,但仅凭自己无法独立完成该方法,于是这个类会引用另外的类或组件,把他们"适配"进来最终完成接口方法。