关键词:转接
两个功能一致的类,但是由于接口的不同不能直接复用,加入适配器做接口转换。
适用性:
• 你想使用一个已经存在的类,而它的接口不符合你的需求。
• 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
• (仅适用于对象 A d a p t e r)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
案例:(用手机给电脑传数据 接口不同 需要一根数据线)
namespace Adapter_DesignPattern2
{
using System;
//希望拥有的,实际不存在
class 苹果手机Target
{
virtual public void 苹果充电插头(int x)
{
}
}
//实际存在的
class 电脑daptee
{
public void USB插孔(string str)
{
Console.WriteLine("USB插孔 = {0}", str);
}
}
//适配器类怎么编写
//1>创建适配器类
//2>继承希望的类,重写 希望类中方法
//3>在适配器类中 实例化 已有的类;调用已有类的对象的方法
class 充电线Adapter : 苹果手机Target
{
//创建 已有的类
private 电脑daptee adaptee = new 电脑daptee();
override public void 苹果充电插头(int a)
{
string b;
b = a.ToString();
adaptee.USB插孔(b);
}
}
/// <summary>
/// Summary description for Client.
/// </summary>
public class Client
{
public static void Main1(string[] args)
{
//通过适配器 可以使用现有的USB接口了。
苹果手机Target x = new 充电线Adapter();
x.苹果充电插头(2);
Console.Read();
}
}
}