博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用最简单的例子理解适配器模式(Adapter Pattern)
阅读量:4685 次
发布时间:2019-06-09

本文共 838 字,大约阅读时间需要 2 分钟。

中国足球的水平虽然不高,但实际上,在每个城市会有一批足球爱好者,他们踢球、看球、懂球。有这样的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();
}
}

 

总结:当一个类实现某个接口方法,但仅凭自己无法独立完成该方法,于是这个类会引用另外的类或组件,把他们"适配"进来最终完成接口方法。

转载于:https://www.cnblogs.com/darrenji/p/3912841.html

你可能感兴趣的文章
杭电3466————DP之01背包(对状态转移方程的更新理解)
查看>>
kafka中的消费组
查看>>
python--注释
查看>>
SQL case when else
查看>>
MVc Identity登陆锁定
查看>>
cdn连接失败是什么意思_关于CDN的原理、术语和应用场景那些事
查看>>
ultraedit26 运行的是试用模式_免费试用U盘数据恢复工具 – 轻松找回U盘丢失的各种数据!...
查看>>
python sum函数导入list_python sum函数iterable参数为二维list,start参数为“[]”该如何理解...
查看>>
UVa540 Team Queue
查看>>
android 练习之路 (八)
查看>>
tp5 中 model 的聚合查询
查看>>
android wear开发之:增加可穿戴设备功能到通知中 - Adding Wearable Features to Notifications...
查看>>
压缩文件函数库(转载)
查看>>
【转】ubuntu12.04没有/var/log/messages解决
查看>>
Oracle EBS 初始化用户密码
查看>>
SYS_CONTEXT 详细用法
查看>>
Pycharm配置autopep8让Python代码更符合pep8规范
查看>>
函数的复写
查看>>
17_重入锁ReentrantLock
查看>>
winform窗口关闭提示
查看>>