适配器模式
Posted King Bruce
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了适配器模式相关的知识,希望对你有一定的参考价值。
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();
}
以上是关于适配器模式的主要内容,如果未能解决你的问题,请参考以下文章
尚硅谷设计模式学习 --- [类适配器模式对象适配器模式接口适配器模式]
设计模式 结构型模式 -- 适配器模式(概述类适配器模式对象适配器模式适配器模式适用场景JDK源码解析(I / O流))