家用电,电压为 220v,经过适配器,输出为 18v,可供我的笔记本进行使用。
第一种:类适配器(使用继承)
Portal.cs 类
/// <summary>
/// 入口
/// </summary>
public class Portal
{
private readonly string _msg;
public Portal(string msg)
{
_msg = msg;
}
/// <summary>
/// 输入
/// </summary>
public void Input()
{
Console.WriteLine(_msg + " --> 18v。");
}
}IOutput.cs 接口
interface IOutput
{
/// <summary>
/// 输出
/// </summary>
void Output();
}Adapter.cs 类
/// <summary>
/// 适配器
/// </summary>
class Adapter : Portal, IOutput
{
public Adapter(string msg) : base(msg)
{
}
public void Output()
{
Input();
}
}方法调用
class Program
{
static void Main(string[] args)
{
IOutput adapter = new Adapter("220v");
adapter.Output(); //结果为 220v --> 18v。
}
}第二种:对象适配器(使用委托)
Portal.cs 类
/// <summary>
/// 入口
/// </summary>
public class Portal
{
private readonly string _msg;
public Portal(string msg)
{
_msg = msg;
}
public void Input()
{
Console.WriteLine(_msg + " --> 18v");
}
}Export.cs 类
/// <summary>
/// 出口
/// </summary>
public abstract class Export
{
public abstract void Output();
}Adapter.cs 类
public class Adapter : Export
{
private readonly Portal _portal;
public Adapter(string msg)
{
_portal = new Portal(msg);
}
public override void Output()
{
_portal.Input();
}
}方法调用
class Program
{
static void Main(string[] args)
{
Export adapter = new Adapter("220v");
adapter.Output(); //结果为 220v --> 18v。
}
}