原理:
把一个类的接口转换成客户端期望的另一种接口,从而使原本因接口不匹配而无法一起工作类能一起工作。适配器类可以根据所传递的参数返回给一个合适的实例给客户端。
abstract class Player //篮球运动员
{
protected string name;
public Player(string name)
{
this.name = name;
}
public abstract void Attack();
public abstract void Defense();
}
class Forwards : Player //前锋
{
public Forwards(string name) : base(name)
{
}
public override void Attack()
{
Console.WriteLine("前锋 {0} 进攻", name);
}
public override void Defense()
{
Console.WriteLine("前锋 {0} 防守", name);
}
}
class ForeignCenter //外籍中锋
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
public void 进攻()
{
Console.WriteLine("外籍中锋 {0} 进攻", name);
}
public void 防守()
{
Console.WriteLine("外籍中锋 {0} 防守", name);
}
}
class Translator : Player //翻译者
{
private ForeignCenter wjzf = new ForeignCenter();
public Translator(string name) : base(name)
{
wjzf.Name = name;
}
public override void Attack()
{
wjzf.进攻();
}
public override void Defense()
{
wjzf.防守();
}
}
static void Main(string[] args)
{
Player pp = new Forwards("Patrick Patterson");
pp.Attack();
Player tw = new Guards("Terrence Williams");
tw.Attack();
Player ym = new Translator ("姚明");
ym.Attack ();
Console.Read();
}