一:类适配器模式
interface ITravel //接口“出差”
{
void Travel();//出差
}
class tuyuan //我们公司有 A ,B 两位员工
{
public void A() //员工A
{
Console.Write("My name is A\n");
}
public void B() //员工B
{
Console.Write("My name is B\n");
}
}
class SouthBay : tuyuan, ITravel
{
public void Travel() //开会决定到”南湾“出差要调入的人
{
base.A(); //调入我们公司的A员工南湾
base.B(); //调入我们公司的B员工到南湾
}
}
// 执行开会的结果 派员工出差
static void Main(string[] args)
{
ITravel target = new SouthBay();
target.Travel(); //叫A,B两位员工到“南湾”出差
Console.ReadLine();
}
输出:My name is A
My name is B
二:对象适配器模式
interface ITravel //接口“出差”
{
void Travel();//出差
}
class tuyuan //“图元”公司有 A ,B 两为员工
{
public void A() //员工A
{
Console.Write("My name is A\n");
}
public void B() //员工B
{
Console.Write("My name is B\n");
}
}
class SouthBay : ITravel //开会决定要A,B到南湾出差
{
tuyuan ty= new tuyuan();//建立公司对象事例
public void Travel()
{
ty.A(); //出差的人
ty.B(); //出差的人
}
}
class TravelClass //执行开会得出的结果
{
public void Process(ITravel target)
{
target.Travel();//执行出差任务
}
}
//前台执行出差具体操作
static void Main(string[] args)
{
TravelClass tc = new TravelClass();
tc.Process(new SouthBay());
Console.Read();
}
输出:My name is A
My name is B
但继承增加了模块间的耦合程度,而组合降低了耦合程度,所以在项目开发中往往建议多使用对象适配器模式