适配器模式的目的是: 将一个类的接口转换成客户希望的另外一个接口。
实例代码:
class EmployeeDatabank
{
public Int32 GetAge(String name)
{
Int32 age = 0;
switch (name.ToLower())
{
case "paopao": age = 25; break;
case "xiongxiong": age = 25; break;
case "xiaoshu": age = 29; break;
}
return age;
}
public String GetSequence(String name)
{
String Sequence = "";
switch (name.ToLower())
{
case "paopao": Sequence = "FD28**"; break;
case "xiongxiong": Sequence = "FD29**"; break;
case "xiaoshu": Sequence = "FD17**"; break;
}
return Sequence;
}
public Double GetStature(String name)
{
Double stature = 0.0;
switch (name.ToLower())
{
case "paopao": stature = 178.5; break;
case "xiongxiong": stature = 170.1; break;
case "xiaoshu": stature = 179.5; break;
}
return stature;
}
}
class Person
{
protected String name;
protected String sequence;
protected Double stature;
protected Int32 age;
public Person(String name)
{
this.name = name;
}
public virtual void Show()
{
Console.WriteLine("Person: {0} ------ ", name);
}
}
class RichPerson : Person //适配器
{
private EmployeeDatabank bank;
public RichPerson(String name)
: base(name)
{
}
public override void Show()
{
bank = new EmployeeDatabank();
sequence = bank.GetSequence(name);
stature = bank.GetStature(name);
age = bank.GetAge(name);
base.Show();
Console.WriteLine(" 工号: {0}", sequence);
Console.WriteLine(" 身高: {0}", stature);
Console.WriteLine(" 年龄: {0}", age);
}
}
//测试
class MainApp
{
static void Main()
{
Person person = new Person("person");
person.Show();
Person shu = new RichPerson("XiaoShu");
shu.Show();
Person alan = new RichPerson("PaoPao");
alan.Show();
Person xiong = new RichPerson("XiongXiong");
xiong.Show();
Console.Read();
}
}
实例代码:
class EmployeeDatabank
{
public Int32 GetAge(String name)
{
Int32 age = 0;
switch (name.ToLower())
{
case "paopao": age = 25; break;
case "xiongxiong": age = 25; break;
case "xiaoshu": age = 29; break;
}
return age;
}
public String GetSequence(String name)
{
String Sequence = "";
switch (name.ToLower())
{
case "paopao": Sequence = "FD28**"; break;
case "xiongxiong": Sequence = "FD29**"; break;
case "xiaoshu": Sequence = "FD17**"; break;
}
return Sequence;
}
public Double GetStature(String name)
{
Double stature = 0.0;
switch (name.ToLower())
{
case "paopao": stature = 178.5; break;
case "xiongxiong": stature = 170.1; break;
case "xiaoshu": stature = 179.5; break;
}
return stature;
}
}
class Person
{
protected String name;
protected String sequence;
protected Double stature;
protected Int32 age;
public Person(String name)
{
this.name = name;
}
public virtual void Show()
{
Console.WriteLine("Person: {0} ------ ", name);
}
}
class RichPerson : Person //适配器
{
private EmployeeDatabank bank;
public RichPerson(String name)
: base(name)
{
}
public override void Show()
{
bank = new EmployeeDatabank();
sequence = bank.GetSequence(name);
stature = bank.GetStature(name);
age = bank.GetAge(name);
base.Show();
Console.WriteLine(" 工号: {0}", sequence);
Console.WriteLine(" 身高: {0}", stature);
Console.WriteLine(" 年龄: {0}", age);
}
}
//测试
class MainApp
{
static void Main()
{
Person person = new Person("person");
person.Show();
Person shu = new RichPerson("XiaoShu");
shu.Show();
Person alan = new RichPerson("PaoPao");
alan.Show();
Person xiong = new RichPerson("XiongXiong");
xiong.Show();
Console.Read();
}
}


浙公网安备 33010602011771号