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

本文共 786 字,大约阅读时间需要 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();
}
}

 

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

转载地址:http://adjax.baihongyu.com/

你可能感兴趣的文章
正则表达式的贪婪与非贪婪模式
查看>>
SqlServer存储过程调用接口
查看>>
DOM
查看>>
通过jQuery.support看javascript中的兼容性问题
查看>>
NYOJ-取石子
查看>>
AngularJS
查看>>
《zw版·Halcon-delphi系列原创教程》halconxlib控件列表
查看>>
List与数组的相互转换
查看>>
Computer Science Theory for the Information Age-4: 一些机器学习算法的简介
查看>>
socketserver模块使用方法
查看>>
json模块
查看>>
各型号英特尔CUP的功率
查看>>
scanf()中的%c 不能正常输入的问题
查看>>
常见排序算法及对应的时间复杂度和空间复杂度
查看>>
业界 | 在德州叫一辆自动驾驶车,Drive.ai安排了7辆无人车展开真实试验
查看>>
实时数据平台设计:解决从OLTP到OLAP实时流转缺失
查看>>
三家公司在SD-WAN方面的新动作
查看>>
C#在PDF中如何以不同颜色高亮文本
查看>>
在同一页面显示多个JavaScript统计图表
查看>>
Mac电脑Tomcat下载及安装(详细)MAC在Eclipse里配置tomcat
查看>>