1 适配器模式 使使原本因接口不匹配而无法在一起工作的两个类能够在一起工作
2 用法:适配器继承目标对象,声明需要适配的对象的成员变量,重写继承方法,里面调用成员变量的方法。
/// <summary>
/// 目标抽象类角色
/// </summary>
public class Target
{
public virtual void Request()
{
Console.WriteLine("This is a common request");
}
}
/// <summary>
/// 适配者类角色
/// </summary>
public class Adaptee
{
public void SpecificRequest()
{
Console.WriteLine("This is a special request.");
}
}
/// <summary>
/// 适配器角色
/// </summary>
public class Adapter : Target
{
// 建立一个私有的Adeptee对象
private Adaptee adaptee = new Adaptee();
/// <summary>
/// 通过重写,表面上调用Request()方法,变成了实际调用SpecificRequest()
/// </summary>
public override void Request()
{
adaptee.SpecificRequest();
}
}
static void Main(string[] args)
{
// 对客户端来说,调用的就是Target的Request()
Target target = new Adapter();
target.Request();
Console.ReadKey();
/// 目标抽象类角色
/// </summary>
public class Target
{
public virtual void Request()
{
Console.WriteLine("This is a common request");
}
}
/// <summary>
/// 适配者类角色
/// </summary>
public class Adaptee
{
public void SpecificRequest()
{
Console.WriteLine("This is a special request.");
}
}
/// <summary>
/// 适配器角色
/// </summary>
public class Adapter : Target
{
// 建立一个私有的Adeptee对象
private Adaptee adaptee = new Adaptee();
/// <summary>
/// 通过重写,表面上调用Request()方法,变成了实际调用SpecificRequest()
/// </summary>
public override void Request()
{
adaptee.SpecificRequest();
}
}
static void Main(string[] args)
{
// 对客户端来说,调用的就是Target的Request()
Target target = new Adapter();
target.Request();
Console.ReadKey();
}