中国足球的水平虽然不高,但实际上,在每个城市会有一批足球爱好者,他们踢球、看球、懂球。有这样的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();}}
总结:当一个类实现某个接口方法,但仅凭自己无法独立完成该方法,于是这个类会引用另外的类或组件,把他们"适配"进来最终完成接口方法。