适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。
有些人喜欢看韩剧,有些人喜欢看美剧,有些人比较迷恋泰剧,但是听不懂怎么看,看字幕呗!通过字幕来看懂自己想要看的电视剧,这就用到了适配器模式!
//电视剧
abstract class teleplay
{
protected string name;
public teleplay(string name)
{
this.name = name;
}
//看电视的方法
public abstract void watch();
}
//韩剧
class Korean:teleplay
{
public Korean(string name)
: base(name)
{ }
public override void watch()
{
Console.WriteLine("韩剧 {0} 我要看", name);
}
}
//美剧
class US_TV_series:teleplay
{
public US_TV_series(string name)
: base(name)
{ }
public override void watch()
{
Console.WriteLine("美剧 {0} 我要看", name);
}
}
//泰剧
class P_Pong:teleplay
{
public P_Pong(string name)
: base(name)
{ }
public override void watch()
{
Console.WriteLine("泰剧 {0} 我要看", name);
}
}
//我,看韩剧和泰剧都需要字幕,美剧就忍着先不看字幕了,嘿嘿
class Me
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
public void 看()
{
Console.WriteLine("我 {0} 要看", name);
}
}
//字幕
class captioncs:teleplay
{
private Me meng = new Me();
public captioncs(string name)
: base(name)
{
meng.Name = name;
}
public override void watch()
{
meng.看();
}
}
//客户端代码
class Program
{
static void Main(string[] args)
{
teleplay stars = new Korean("《来自星星的你》");
stars.watch();
teleplay xszr = new US_TV_series("《行尸走肉》");
xszr.watch();
teleplay qbt = new P_Pong("《丘比特恶魔》");
qbt.watch();
}
}
最后的输出结果: 这里的字幕就相当于适配器了,借助它看懂我们想要看的电视剧,只要有字幕,不会韩语不会英语不会泰国语言也没事,不过,看美剧的时候就不要看字幕了,嘿嘿,因为我们还要好好学英语呢!